在安装WiX 3.0的同时安装WiX 3.5

9
有没有可能同时安装WiX 3.0和3.5?如果我在安装了3.0之后再安装3.5,它会删除3.0文件 - 如果我尝试在3.5之后安装3.0,它会告诉我已经安装了更新版本。
我正在从VS 2008迁移到VS 2010的过程中,因此我的应用程序有一个版本(分支)使用VS 2008(现有生产版本),另一个版本使用VS 2010(未来版本)。VS2010需要WiX 3.5。
这意味着在我的构建服务器上,目前无法同时构建当前版本和新版本,因为其中一个将报告找不到WiX文件的错误:
c:\ buildAgent \ work \ fe55ddb47cebe4fd \ MyApp.wixproj(25,11):错误MSB4019:未找到导入的项目“C:\ Program Files(x86)\ MSBuild \ Microsoft \ WiX \ v3.0 \ Wix.targets”。确认声明中的路径是否正确,并且磁盘上存在该文件。
我不想将我的产品的当前版本升级到WiX 3.5,因为3.5仍处于beta阶段,而且我只能挑选每周构建才能让其正常工作(我只是希望在准备下一个版本时,WiX 3.5将变得稳定)。
有没有办法同时安装两个版本?我只需要将3.0文件复制到Msbuild目录中吗?
2个回答

7

我最终的解决方案是:

  • 使用.MSI包安装WiX 3.5.1916(后续版本无法正常安装,我也没有花费太多精力去解决)

  • 将以下文件复制到构建服务器:

    • %programfiles%\Windows Installer XML v3**
    • HKLM\SOFTWARE\Microsoft\Windows Installer XML\3.0 (对于x64系统,使用SOFTWARE\Wow6432Node\)
    • %programfiles%\MSBuild\Microsoft\WiX\v3.0**

现在构建成功了,但我还没有对生成的文件进行太多测试。所以看起来可以同时拥有3.0和3.5版本,只是需要一些小麻烦来使其正常工作。


3

目前wix的设计方式不允许在同一台机器上同时安装3.0和3.5版本。但是,他们提供了一个zip版本的wix,可以让您的构建自动化自行部署wix到构建服务器以绕过此限制。但是,您会失去某些功能,例如Visual Studio集成。


请问您能详细阐述一下设计中究竟有什么防止它们两者同时发生的吗? - Ed Guiness
1
我不能告诉你确切的原因(因为我不在WiX团队),但它始于升级表中删除先前版本的行。其根本原因是许多组件没有完全隔离,存在竞争文件扩展名而没有版本选择器的概念,Visual Studio插件之间会发生冲突等等。核心Bin可以在构建期间进行xcopy,但整个工具集不能以其当前形式并存。 - Christopher Painter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接