我使用的VS2008安装(外加一个自定义的逆戟鲸的行动)创建一个安装于我的。净产品。

我刚刚发现了一个第三方程序集我用的是x86具(因为它包括一些机代码);因此,64客户得到崩溃的启动与错误有关的大会没有被适当用于他们的平台。

我送这样一个客户的副本64版本的第三方组件,并告诉他,只是复制的现有x86之一。它的工作,甜的!所以现在我只需要做出的安装这么做对我来说。

这实际上出现非平凡:(.理想的是,我只是想要安装程序(这将是x86,因为这可以运行在这两个平台)为包括两x86和64版本的第三方会,并安装一个合适的。换句话说,我想要一个单一的安装,使我用户的生活容易。

我认为我有这个工作,使用MSI有条件的声明和所有。但显然没有...该VS2008安装项目中不会编制,除非指定"x86"或"64." 如果你指定x86,它提供了一个编辑错误说它不能包括的64件。如果你指定64,那么结果不能上执行一个x86计算机。该死的!

必须有人都有这个问题之前。不幸的是谷歌是无益的,所以我把计算器!

有帮助吗?

解决方案

如果我理解正确的话,你想要做的复制一文件,如果你们x86和不同的文件(同名),如果你正在安装一64平台。

首先,你不能创建一个MSI2种不同的平台,因为64MSI根本不会上运行的一个x86平台和一个x86MSI将安装使用WOW64在64平台。

另一方面,您可以创建一个x86MSI,包含2个不同版本的文件和选择性地复制适当的文件期间安装。

最简单的方法是使用维克斯(V3),而不是建立在VS2008MSI发电机。维克斯让你有更大的控制上的安装客户的计算机和在那里,能够产生不同的安装者不同的平台和全MSBuild支持。(见 http://wix.sourceforge.net 更多的信息。)

在情况如果你想知道,维克斯仍处于测试阶段,所产生的MSI文件是完全确定,我从来没有遇到了一个错误。(我和开发安装项目的生活。)

最后,你可以检查与VersionNT64的财产,如果一个x86安装上运行的64平台。如果该财产是本,你在运行的64,否则你上运行的一个x86。

希望这会有所帮助。

其他提示

当我看着这个一年前,我得出的结论,这是不可能的。值得注意的是,许多Microsoft提供MSI文件来单独x86和64的味道--和据推测,他们只会提供一个单一的文件,如果这是可能的。

我已经取得了一些成功通过使用两种功能以选择性地包括了两套文件(在独立的部件的过程中,与他们的个性化的文件标识符!).

安装必须有标记为x32要安装两x32和64.它总是将安装到x32的目录,并将在很大程度上被视为一个32位应用程序下运行哇。

使用VersionNT64酒店,您可以确定,如果一个窗64安装存在,并有条件地安装所需文件。

我不知道该如何多的这种功能是提供VS2008安装项目--我使用一些其他商业工具设置的安装这种方式。当然你也可以使用的逆戟鲸以做到这一点,虽然它是非微不足道,获得它的工作与商业工具和逆戟是要困难得多。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top