Wix Installer issues with version numbers and upgrades -


I'm trying to create an installer that creates each time solutions and solutions makes MSI build output folder . Installation is only to install components of the soution \ bin folder we use the Major.Minor.Patch.Build version schema using the Wintellect TFS build number function.

I want every MSI to be installed without uninstalling the previous one. Each install will be installed in your specific \ bin_x.x.x.x folder and the app will make specific desktop shortcuts and menu entries with the x.x.x.x description. It should be able to detect that you are trying to install the MSI, it has already been the repair or installation quickly to cancel

  & lt ;? Define ProductVersion =! (Bind.FileVersion. $ (Var.MyProject.TargetFileName))? & Gt; & Lt ;? Defined ProductName = MyProduct! (Bind.FileVersion. $ (Var.MyProject.TargetFileName))? & Gt; & Lt; Product id = "*" name = "" $ (var.ProductName) "version =" $ (var.ProductVersion) "UpgradeCode =" $ (var.NewUpgradeCode) & gt; & Lt; MajorUpgrade AllowSameVersionUpgrades = "yes" AllowDowngrades = "no" MigrateFeatures = "no" schedule = "afterInstallInitialize" DowngradeErrorMessage = ".. later version of [ProductName] is already installed Setup will now close" / & Gt;  

In directory definition, I use var.ProductVersion \ bin_x.xxx to define a folder

    

In the project file, I have NewUpgradeCode

  & lt; PropertyGroup & gt; & Lt; NewUpgradeCode & gt; $ ([System.Guid] :: NewGuid ()) & lt; / NewUpgradeCode & gt; & Lt; DefineConstants & gt; NewUpgradeCode = $ (NewUpgradeCode) & lt; / DefineConstants & gt; & Lt; / PropertyGroup & gt;  

I use the Heat Directory entry in the project file to get the list of files in the Output Bin folder to install.

  & lt; HeatDirectory OutputFile = "BinFiles.wxs" directory = ".. \ Build \ 64 \ release \" toolpath = "$ (WixToolPath)" PreprocessorVariable = "var.MyProject.TargetDir" DirectoryRefId = "BINFOLDER" ComponentGroupName = "BinFolderComponents" GenerateGuidsNow = "True" Suppressfaregments = "true" Suppressk = "true" Suppressregistry = "true" Suppressrotdirectori = "true" Keepempteedirektoris = "true" & gt;  

All this is working very well with small issues.

  1. Whether the current upgrade plan is still removing the previous installed version, version number. I want to install both version 1.0.0.1 and 1.0.0.2 at the same time. By the way I find it to keep uninstalled the previous version I installed it configured?

  2. I want to name the MSI file MyProject_x.x.x.x.MSI. But whatever approach I take in the name of the MSI file, I get 0 for the exact number.

Even if the version of EXE is 1.2.0.321 then it always returns 1.2.0.0

But Bind.FileVersion removes the full version of EXE? But that's only available in the project file. In XML, where the MSI file name is defined?

  1. I want to delete name by name in the Heat directory file before running the output folder, therefore it is not included. But since I do not know the previous version number, I will need to delete the wildcard *. MSI Earlier, if I remove it as a pre-build event during the builder process, it does not remove the file (files) before the heat directory is running in the BitterBill target.

Removing wildcards does not work in this XML markup above, so how can I make sure that in my output before running the heat directory Do not have an .msi file?

I was able to solve some of these if I wanted to upgrade the megafet upgrade to work like upgrade behavior I am, so I remove it.

Resolve the files to be deleted before

  & lt; Exec command = "del .. \ build \ 64 \ release \ * MSI" />  

Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -