Dom*_*nic 5 installation 64-bit x86 windows-installer visual-studio-2008
我正在使用VS2008安装程序(加上自定义Orca操作)为我的.NET产品创建安装程序.
我刚刚发现我使用的第三方程序集之一是x86特定的(因为它包含一些本机代码); 因此,x64客户在启动时遇到崩溃,错误的是程序集不适合他们的平台.
我向这样的客户发送了这个第三方程序集的x64版本的副本,并告诉他只需将其复制到现有的x86版本上.它工作,甜蜜!所以现在我只需要让安装程序为我做这个.
这实际上看起来很重要:(.理想情况下,我只是希望安装程序(可能是x86,因为它可以在两个平台上运行)包含此第三方程序集的x86和x64版本,并安装相应的安装程序.换句话说,我想要一个让用户生活更轻松的安装程序.
我以为我已经解决了这个问题,使用MSI条件语句等等.但显然没有......除非指定"x86"或"x64",否则VS2008安装项目将无法编译.如果指定x86,则会出现编译错误,指出它不能包含x64程序集.如果指定x64,则无法在x86计算机上执行结果.该死的!
以前有人必须遇到这个问题.不幸的是谷歌没有帮助,所以我转向StackOverflow!
当我在一年前研究这个时,我得出的结论是,这是不可能的.值得注意的是,许多Microsoft提供的MSI文件都有单独的x86和x64版本 - 据推测,如果可能的话,它们只会提供单个文件.
如果我理解正确的话,如果您在 x86 上安装,则需要复制一个文件;如果在 x64 平台上安装,则需要复制不同的文件(具有相同的名称)。
首先,您无法为 2 个不同的平台创建一个 MSI,因为 x64 MSI 根本无法在 x86 平台上运行,而 x86 MSI 将使用 WOW64 在 x64 平台上安装。
另一方面,您可以创建一个包含 2 个不同版本的文件的 x86 MSI,并在安装过程中有选择地复制适当的文件。
最简单的方法是使用 WIX (V3) 而不是内置的 VS2008 MSI 生成器。WIX 使您能够更好地控制客户计算机上安装的内容和位置,能够为不同平台生成不同的安装程序,并提供完整的 MSBuild 支持作为额外的好处。(有关更多信息,请参阅http://wix.sourceforge.net 。)
如果您想知道 WIX 仍处于 Beta 阶段,生成的 MSI 文件完全没问题,而且我还从未遇到过错误。(我以开发安装项目为生。)
最后,您可以使用 VersionNT64 属性检查 x86 安装程序是否在 x64 平台上运行。如果该属性存在,则您正在运行 x64,否则您正在 x86 上运行。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
3147 次 |
| 最近记录: |