我用gui编写了一个简单的wix安装程序,可以很好地安装。但是,当我第二次运行相同的.msi文件时,它将带我完成gui中的正常安装过程,但最后会卸载我的应用程序。然后,如果我第三次运行相同的.msi文件,则安装程序仍会正常执行安装gui,但最终会执行“卸载”。
我不明白为什么它的行为不像其他安装程序那样,并且可以正常处理安装和卸载。
这是我的产品xml的一部分
<Product Id="*" Language="1033" Codepage="1252" Name="..."
Version="$(var.ProductVersion)" Manufacturer="..." UpgradeCode="BDF9E310-5897-48D4-AB08-889D405F9X56">
<Package InstallerVersion="300" Platform="x64" Compressed="yes" InstallScope="perMachine" Manufacturer="..."
Comments="..." Description="..." Keywords="..."/>
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<Product Id="*" Name="..." Version="" Manufacturer="..." UpgradeCode="...">
Auto-GUID:Id="*"
部分表示“自动生成产品代码”(使用*
表示自动生成)。执行此操作时,安装程序的每次构建或重建都会获得新的产品代码。如果您还更改了[[ProductVersion
(前3位数字之一)并且您有MajorUpgrade element
(例如您正在使用的源(顺便说一下,这是标准的)。
Solution:如果您希望能够控制何时更改,则可以对产品代码进行硬编码。