ucommerce custom pipeline configs not working - config

I've added and removed pipeline tasks from the Basket.config and Custom.config but whatever I do nothing happens. Even if I remove the files, the previously registered custom pipeline tasks are excecuted.
I don't understand why. What do I have to do to be able to edit these files and make the changes excecute?

another thing to be aware of here is that if your application finds old configuration sets (depending on your uCommerce version) old configuration could be picked up. uCommerce automatically picks up "components.config" by scanning the website to find it. If, for some reason (usually VS publish) there's another set of confiuration files, that could unintentionally be picked up.
This was fixed in version 6.1.1.14217.
But as martin suggests, recycling the app pool is most likely the cause!
Hope this helps you.
Best regards
Morten

When you add/remove pipeline components in any of uCommerce's configuration files you have to recycle your application pool since uCommerce is only reading these configuration files on website startup/spinup.

Related

How to share (VCS) run configurations templates with IntelliJ IDEA

I've dug a lot and learned how to share the run configurations in IntelliJ IDEA CE (presently using 2019.3.4) via the in .idea/runConfigurations/*.xml files. When we check those file into VCS (Git) others get them and all works as expected.
The question is related to sharing the templates for JUnit and Application configurations. When created manually they end up in .idea/workspace.xml which is not meant for or suitable for sharing (often modified, has personal preferences and even screen locations, ...).
I could not find any mention of how to do this so I tried extracting the relevant <component ...>...</component> fragments into standalone files inside .idea/runConfigurations/. This seemed to work but weird things started happening - IDEA renamed the files from my original names (whatever they were, forgot), to:
.idea/_template__of_JUnit.xml and
.idea/_template__of_Application.xml
I was happy with that and submitted those to Git but then other people commented how IDEA keeps renaming those files further.
What is the proper way to accomplish this?
Thanks!
IntelliJ IDEA doesn't support sharing run/debug configuration defaults at the moment.

Atlassian Bamboo: don't trigger build if changes were made to a specific file

I have a plan in Bamboo that starts whenever changes are made to the attached repositories (via polling).
Now, on each build, if successful, a CHANGELOG file is updated in the repo, which in turn, triggers another build. How can I omit certain files from Bamboo's polling, so that a build isn't started if changes are found for those files? Because otherwise, I enter in infinite loop, with a change to CHANGELOG triggering another build which in turn updated CHANGELOG and so on.
If this is not possible, what other viable solutions are there? Is it possible to attach a shell script somewhere before the build starts to check whether it's desired to start a new build?
It turned out that this was simpler than I've thought. In Plan Configuration, in the Repositories tab, on each repository, under Advanced, there is an Include / exclude files input where you can Customise what files Bamboo uses to detect changes. By adding a regular expression there, I got everything solved and working as expected.
Bamboo pattern matching reference: https://confluence.atlassian.com/display/BAMBOO/Pattern+matching+reference
The Bamboo Documentation says:
Bamboo will ignore build triggers if the local working copy and the
repository copy have the same revision numbers.
This might not be the best solution, but you might add an additional task at the end of the job/build which updates the repository again to avoid triggering a new build.
I'm not sure if this would then skip builds from repository updates which occur during the current build.

Deploy multiple configurations from command line without changing project files

Please don't be too harsh, because I do not grasp this entirely correctly still, but msbuild/msdeploy is giving me some headaches lately.
Hopefully someone can provide a textual aspirin of some kind? So here is what I want to do:
I have a web application project, that has multiple configurations, thus multiple web.config-transforms.
I would like to deploy this project from command line.
I would rather not want to modify its project file. (I want to be able to do this for several web applications so as least as editing as possible is much appreciated)
I would like to be able to build it only once and then deploy the different configurations from it.
So far I deployed from command line using something like this:
msbuild D:\pathToFile\DeployVariation01.csproj
/p:Configuration=Debug;
Platform=AnyCpu;
DeployOnBuild=true;
DeployTarget=MSDeployPublish;
MSDeployServiceURL="localhost";
DeployIisAppPath="DeployApp/DeployThis01";
MSDeployPublishMethod=InProc
And this performs just what I want, except it only deploys the "Debug"-Configuration.
How can I, with minimal adjustments, make it deploy my other configurations as well?
I was thinking maybe I could build a package that includes all my configurations and then deploy from that and decide "while deploying" which configuration to deploy?
Unfortuanetly I am pretty much stuck here, the approaches I have read about all seem to require some modifications to project files, is there a way around that?
UPDATE:
I am still not really where I want to be here :).
But I looked into this PackageWeb-approach (also interesting video about that here) and it seems pretty nice; I can now build a package that includes all my transforms and then deploy from that as often as I want into multiple configurations.
One thing that I dislike about this is that I have to store my password in plain text into the generated parameters file for the powershell script, does someone know a way around this, I really would rather have that being an encrypted password.
Also other approaches to solve my original problem are still appreciated.
I am working on the same problem and am taking two paths using Microsoft Web Deploy or MSDeploy which is now in version 3.0.
I first compile the project using MSBUILD using the Package target passing in system.configuration, system.packagelocation. The Package Target generates a set of package files including a {PackageName}.SetParameters.xml file. The SetParameters.xml file by default allows on-publish changes to ConnectionStrings without recompiling when using msdeploy.exe to publish the file. The publish transformation process can also be customized by adding a parameters.xml file to the process defining additional parameterized web.config settings which can be changed at deploy time.
After the initial build I use the {PackageName}.deploy.cmd file generated by MSBUILD during the Package process to deploy the package to the target website. The Package process essentially duplicates the process you are currently doing from MSBUILD in that I can publish one Build-Configuration web.config transform from one compile. The process provides a consistent deployment process that can target remote servers from a central CI environment, which is great from a purely deployment process. The PackageBuild/Deploy process is parameterized within TeamCity, requiring changes to only a few parameters to setup a new deployment.
Like you, I cannot, however, compile a single version of code and deploy to multiple servers using the process as it exists today - which is my current focus. I want to parameterize the transform in a Continuous Deployment, build-once-deploy-many pattern to Dev, QA, User Testing, Staging, and Production.
I anticipate using one of two methods:
Create a Parameters.xml file for each project defining the variable deployment parameters along with a custom {ServerName}.SetParameters.xml for each target deployment, both to be used in conjunction with msdeploy.exe.
a. I am not sure defining a parameters.xml is a flexible enough process for my needs as the current project inserts and removes a variable number of web.config settings. Implementing a parameters file incorporating all of the variables could be too complex for my taste. I would also end up creating all of the target transformations, instead of the current developers initiated process. Not ideal.
I am following up on very recent updates to VS2012 Web Tools 2012.2 which allow tying a web.config transform to the publish profiles (profile.pubxml) now stored under SolutionName/Properties/PublishProfiles in VS2012.
VS2012 release 2012.2 adds the capability to create a second transform tied to the publish profile. The resulting transform process first runs the build configuration transformation, followed by the publish transformation, i.e. Release Transform followed by TargetServer Transform. Sayed Hashimi has a great YouTube video demonstrating the entire process using MSBUILD.
What is not entirely clear is whether the second transform is supported separately from the build using MSDeploy in a Continuous Deployment, build-once-deploy-many Pattern, or if the publish transformation is only supported during a separate Package/Build for each target transformation.
Option 1 will definitely work for some environments and was my first plan for tackling a Continuous Deployment process. I would much rather use Web Transforms to accomplish the process if possible.
An outside third possibility is using one of several CodePlex commandline projects that are capable of transforming web.config using the XDT transform engine. Unfortunately, using these tools would mean splicing the results into the Build/Package MSBUILD process in order to get the resulting web.config transformation into the deployment package - something I've not yet been successful in accomplishing. Sayed Hashimi also has a PackageWeb project from 2012 that might work as well. I am hoping his more recent work replaces the need for the extra steps involved in the packageweb solution.
Let me know if you decide on a solution - as I am definitely interested.

track changes from the start of workspace

I have an eclipse plugin. I need to keep track of the files changed/created from the plugin or outside it. I have added the Resource change Listener in the Activator of the plugin.
But this will track the changes only after the plugin is invoked. In the mean while if any changes were made from other menus, i am not able to track them. Is there any
way to handle the changes that happen before the activation of my plugin?
Eclipse does not have a listener that you could add to track changes before your plugin is initialized. You could add an IStartup extension to register your resource change listener early, but these are considered evil (it's similar to putting something in the Startup folder on windows, why start something unless you KNOW you're going to use it?).
However, it sounds like you could solve this using the IResource API and by keeping an index of the files your plugin has control over (probably using checksums). I would add a system job on your plugin's startup to index the files and reconcile your model against what's on disk.
Another thought is that you may be able to piggy-back off of a team provider if the resources in question will be going into a repository.

Team Foundation Server build is transforming web.config TWICE, and the second time is wrong

I have a TFS build definition set up with the following information in the Process -> Advanced -> MSBuild Arguments section: (the [] bracketed values are omitted in this post for security)
/p:DeployOnBuild=True
/p:MSDeployPublishMethod=RemoteAgent
/p:MSDeployServiceUrl=[URL]
/p:DeployIisAppPath=[IISPATH]
/p:UserName=[USERNAME]
/p:Password=[PASSWORD]
/p:CreatePackageOnPublish=True
/p:DeployTarget=MSDeployPublish
/p:Configuration=Development
Here's the issue I have. I have many configurations set up in my web project, and the Development configuration is one of them. If I leave off the "/p:Configuration=Development" and build the project, which then auto-deploys to our dev environment, the web.config transform is wrong. It's replacing my connection string info with the information from another configuration.
If I put the "/p:Configuration=Development" back into the MSBuild arg list and open the web.config file in VS2010 during the build process, the first time the web.config is changed outside my IDE, I can see that the appropriate web.config transform has been made in accordance with the Development configuration, but then the web.config file is changed AGAIN, and it's back to the improper configuration.
My thought here is that when leaving the "/p:Configuration=Development" on, MSBuild is getting it right, but whatever process that is called from MSBuild (I'm assuming MSDeploy) to actually deploy the site to the server is getting it wrong.
Oh, and I'm using an IIS6 server, not IIS7, so any IIS7-specific functionality won't really help me.
Any ideas here of how to fix this problem?
EDIT - Fix
So, some colleagues and I spent some time on this and eventually rebuilt our environments for an unrelated reason. After rebuilding, we started to see the same thing happening. We took a look at the IIS Temporary Compressed Files (C:\inetpub\temp\IIS Temporary Compressed Files) folder and noticed a lot of old info being stored. We deleted everything from that folder and ran iisreset, and the build worked as expected.
-- Original Post
I am having the exact same issue. I have looked at every output file I can think of on the build server and they are all correct. However, when msdeploy is called, the transform seems to happen (based on modified date) but is done wrong. I have also tried grabbing the deployment.zip and importing application on the web sever, which does deploy correctly. Does anyone know how to intercept the msdeploy call from the build server to see what exactly the command contains. I have tried procmon, but not having much luck.