奇怪的问题,但它困扰着我。
当我尝试部署msi包时,并未完全更新以前的版本。但版本已在控制面板中更新,但未在UI中更新(在UI中进行的更改未反映)。
DetectPreviousVersion = True;
RemovePreviousVersion =True;
Installallausers=true;
产品版本的数量高于以前安装的版本,并更改了每个更高版本的产品代码。
以前安装的版本和新版本的升级代码相同。
如果我手动删除以前的版本然后安装最新版本,那么我可以看到UI中的更改。
答案 0 :(得分:1)
正确版本化DLL和EXE会阻止这种情况发生。
任何安装程序的核心都是文件的实际安装。 确定是否安装文件是一个复杂的过程。在 最高级别,这个决定取决于组件是否 文件所属的标记为安装。一旦确定了 应该复制一个文件,如果是另一个文件,则该过程很复杂 目标文件夹中存在同名。在这种情况下, 做出决定需要一套涉及的决定 以下属性:
•版本
•日期
•语言
答案 1 :(得分:0)
可能重复的问题:
但是对于观众来说,答案是使用orca为msi包添加额外的属性。
REINSTALLMODE=amus
amus-在升级时更新所有文件 omus-更新仅在安装程序识别时更改的文件
参考原始回答here
答案 2 :(得分:0)
较早版本的Visual Studio安装程序用于有效地卸载所有旧文件,然后安装产品及其文件。 VS 2008及更高版本要求您更新要在升级中覆盖的文件的文件版本。