Wix - 自动化32位和64位构建

时间:2015-01-27 14:41:27

标签: msbuild wix wix3.9

从这个答案https://stackoverflow.com/a/15985524/552448

开始
<Wix>
    <Bundle...>
        <BootstrapperApplicationRef Id='WixStandardBootstrapperApplication.HyperlinkLicense' />

        <Chain>
            <MsiPackage SourceFile="prereq1.msi" />
            ....
            <MsiPackage InstallCondition='NOT VersionNT64' SourceFile='path\to\x86.msi' />
            <MsiPackage InstallCondition='VersionNT64' SourceFile='path\to\x64.msi' />
        </Chain>
    </Bundle>
</Wix>

我的解决方案中的所有项目都是目标&#34;任何CPU&#34;,除了引导程序和MSI程序包之外,因此我使用共享机柜来避免引导程序的最终大小加倍

我知道我必须使用x86构建MSI,然后使用x64构建MSI,最后构建引导程序。这是手动完成的吗?

但是,我想自动完成这些步骤。

我一直在尝试将一个Prebuild事件添加到Bundle wixproj文件中,这与

一致
$(MSBuildBinPath)\msbuild "$(SolutionDir)MyMSI\MyMSI.wixproj" /p:Platform=x86;Configuration=Release
$(MSBuildBinPath)\msbuild "$(SolutionDir)MyMSI\MyMSI.wixproj" /p:Platform=x64;Configuration=Release

然而,这失败并出现此错误:

未为项目&#39; MyLibrary.csproj&#39;设置OutputPath属性。请检查以确保您为此项目指定了Configuration和Platform的有效组合。配置=&#39;推出&#39;平台=&#39; 86&#39 ;.您可能会看到此消息,因为您正在尝试构建没有解决方案文件的项目,并且已指定了此项目不存在的非默认配置或平台。

我希望无需通过所有项目即可使其工作,以添加平台/配置组合。毕竟,如果我右键单击MyMSI并选择构建,则此方法有效。

当然,我一定错过了什么。

1 个答案:

答案 0 :(得分:0)

很明显 - 创建两个独立的MSI项目 - 一个使用x86,另一个使用x64,两者都使用相同的文件。

相关问题