我有一个用WIX创建的安装程序,它安装了一堆DLL和Config文件。一旦安装完成,很明显有时候我想更新DLL文件并保留配置。
我查看了NeverOverwrite="yes"
选项,看起来很有希望,但我现在遇到了这个问题。当我在安装完成后尝试重新运行安装程序时,出现此错误。
问题在于我不想弄乱Build Number或Product ID。我只是希望安装程序重新运行并覆盖必要的DLL文件。这有意义吗?
答案 0 :(得分:2)
如果您重新编译以更新dll,您应该考虑更新安装程序中的版本控制。如果你有一个构建过程,每次编译dll和安装程序时都会更新内部版本号,这不应该是一个问题。
您收到错误的原因是因为产品ID和版本号匹配,但包代码不同。要解决该错误,您有以下选择:
答案 1 :(得分:2)
与BryanJ一样,错误表明您正在安装一个新软件包,其产品代码与之前安装的软件包相同。
解决方案最有可能只是将产品Id
属性设置为*
。当您希望能够执行minor upgrades时,您只需要稳定的产品ID。
次要升级不允许对功能组件树进行任何重组,而AFAIK只具有更快速进行大型安装的优势。我们只是以major upgrades进行所有升级,这些升级更易于管理。