Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从以前的Visual Studio安装升级到Wix_Wix_Windows Installer_Wix Extension - Fatal编程技术网

从以前的Visual Studio安装升级到Wix

从以前的Visual Studio安装升级到Wix,wix,windows-installer,wix-extension,Wix,Windows Installer,Wix Extension,我有一个旧的安装程序,它是一个基本的VisualStudio安装项目,但是过了一段时间,我们意识到它远没有我们需要的那么复杂。所以我花了几天时间用WiX生成了一个替换 现在,我当前的问题是从以前的安装升级。如果有人安装了与VS项目一起安装的其中一个版本,他们是否可以使用新的WiX项目?我尝试过将升级代码设置为相同的,但没有任何不同,它似乎认为这是一个全新的产品,并尝试再次安装 有可能吗?应该有可能,但有几件事需要正确设置。可能您在.vdproj项目中看到的内容与在.msi安装中编写的内容不同。将

我有一个旧的安装程序,它是一个基本的VisualStudio安装项目,但是过了一段时间,我们意识到它远没有我们需要的那么复杂。所以我花了几天时间用WiX生成了一个替换

现在,我当前的问题是从以前的安装升级。如果有人安装了与VS项目一起安装的其中一个版本,他们是否可以使用新的WiX项目?我尝试过将升级代码设置为相同的,但没有任何不同,它似乎认为这是一个全新的产品,并尝试再次安装


有可能吗?

应该有可能,但有几件事需要正确设置。可能您在.vdproj项目中看到的内容与在.msi安装中编写的内容不同。将Orca用作.msi阅读器,并提取所需的所有信息。升级代码必须相同,产品代码必须不同,安装版本必须更大,可以是第一个、第二个或第三个数字。第四个数字不算

WiX对我来说也是一个模糊的黑匣子,所以我可能会遗漏一些东西,但据我所知,如果所有的设置都是如上所述的,那么旧的安装应该在启动新安装时自动卸载。其中有一个解释

编辑:升级代码不必相同,但您还需要做额外的工作,如本文所述。

请参阅帮助主题:

主要升级只能在相同的安装环境中执行升级。(每用户->每用户或每台机器->每台机器)。如果您的VDPROJ是偶然为每个用户安装的,则用户必须卸载/重新安装才能成为每台计算机


您的新安装程序不必具有与旧安装程序相同的升级代码,但它必须使用旧安装程序的升级代码编写主要升级。

问题在于我没有更改第一个或第二个版本号。当时是3.3.1.1,我试着先换成3.3.1.2,但没用。然后是3.4.0.0,walla,升级正确如果WiX对你来说是一个obsecure黑匣子,你为什么要回答这个问题?你认为第三和第四个数字不算数的说法是错误的。第四个数字不算。另外,两个MSI不必具有相同的升级代码。您也没有提到需要升级表中的条目。这就是需要旧的升级代码的地方。最后一句话如何在wix项目中实现?代码是什么?请阅读帮助主题链接。(提示:MajorUpgrade元素)似乎MajorUpgrade元素与升级表(使用元素创建)一起工作。正确。WiX是Windows Installer上的精简抽象(转换)。其中WI是关系数据库,WiX是带有XSD的XML。MajorUpgrade元素是一种语法上的糖类,它进一步简化了Upgrade元素和RemoveExistingProducts操作的相关顺序。底层的Windows Installer架构/SDK是完全声明性的,并有完整的文档记录。这真的没有什么“黑匣子”。它的开放性很强,元数据也很丰富。每台机器/每用户都让我感到困惑,我试图弄明白为什么WiX不会删除(或升级版本检测)Visual Studio安装程序以前版本的同事。