We have several deployments of the same assemblies with different configuration files for different environments. We package these up in to separate ClickOnce deployments with d
To run concurrent versions of a ClickOnce application, you must change the AssemblyName, and it's recommended that you also change the ProductName in the Publish properties, so you can tell in a start menu which one is which.
Click here to see how to Install Multiple Versions Concurrently
For each environment, keep separate assembly names and product names with a postfix of the environment name. In addition, create a GUID for each environment, and add it to the AssemblyInfo.cs, for example:
[assembly: GuidAttribute("FA380FBE-11B0-406E-88D3-AF40BE93F7D6")]
This then makes it possible to run the same application from separate ClickOnce sites, each having a short cut corresponding to the product name.
Karg, if you use MageUI you can change the ApplicationIdentity and run several published versions of the same application at once.
I ended up using -u -Update option to create a new Deployment for QA based on Production.
Here are the steps I did to test a verify
cd "$(TargetDir)"
"$(ProjectDir)mage.exe" -New Application -Name $(ProjectName) -p msil -TrustLevel FullTrust -Version 1.0.0.0 -FromDirectory . -ToFile ".\$(TargetFileName).manifest"
"$(ProjectDir)mage.exe" -New Deployment -Install false -Name $(ProjectName) -p msil -Version 1.0.0.0 -AppManifest ".\$(TargetFileName).manifest" -ToFile ".\$(TargetName).application"
"$(ProjectDir)mage.exe" -Update ".\$(TargetName).application" -Install false -Name $(ProjectName).QA -p msil -Version 1.0.0.0 -AppManifest ".\$(TargetFileName).manifest" -ToFile ".\$(TargetName).QA.application"
I needed to change to the "$(TargetDir)" via cd "$(TargetDir)" because mage wouln't process directories and filepaths correctly when I gave it paths with spaces that are enclosed in double quotes. To get around that, I set the current directory to the location of where the files are built to.
The 2nd line creates the manifest file
The 3rd line creates the Production deployment file.
The 4th line creates the QA deployment file from the Production deployment file. (NOTE: I'm adding QA to the deployment file and the Application Name.)
The 4th line causes a 2nd application file to get created. When both applications are ran, they will have the same binaries but the ApplicationDeployment.UpdateLocation will be different for each. One will have the filename $(TargetName).application and the other will have the filename $(TargetName).QA.application. In my code I can use this to determine which 'Version' of the Application was ran (QA or Production)
Try using MageUI. Open your deployment manifest (the one with the .application extension). Select "Name" from the list on the left and edit the "Name" textbox. Then select "Description" from the list and edit the "Product" field. That way you'll be able to distinguish your different installs on the start menu and in add/remove programs.
Save your changes, re-sign the manifest, and you should be good to go.