【问题标题】:Wix - automate 32bit and 64bit buildWix - 自动化 32 位和 64 位构建
【发布时间】:2015-01-27 14:41:27
【问题描述】:

从这个答案开始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>

我的解决方案中的所有项目都以“任何 CPU”为目标,但引导程序和 MSI 包除外,因此我使用共享机柜来避免引导程序的最终大小加倍。

我知道我必须使用 x86 构建 MSI,然后使用 x64,最后构建引导程序。手动完成,它可以工作。

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

我一直在尝试将 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

但是,这会失败并出现以下错误:

没有为项目“MyLibrary.csproj”设置 OutputPath 属性。请检查以确保您为此项目指定了有效的配置和平台组合。配置='发布'平台='x86'。您可能会看到此消息,因为您正在尝试构建一个没有解决方案文件的项目,并且指定了该项目不存在的非默认配置或平台。

我想让它工作,而不必通过所有项目来添加平台/配置的组合。毕竟,如果我右键单击 MyMSI 并选择构建,这将有效。

我肯定错过了什么。

【问题讨论】:

    标签: msbuild wix wix3.9


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-07
      • 2010-12-01
      • 2016-12-02
      • 2015-07-20
      • 2011-10-18
      • 1970-01-01
      相关资源
      最近更新 更多