【问题标题】:WiX Visual Studio Setup Project: How to build different msi in one project, depending on preprocessor variablesWiX Visual Studio 安装项目:如何在一个项目中构建不同的 msi,具体取决于预处理器变量
【发布时间】:2012-06-08 06:33:58
【问题描述】:

这样的情况:我有一个 wxs 构建文件。它基于 3 个预处理器变量:

Build=[Client\Server] 
Platform=[Win32\x64]
Configuration=[Release\Debug]

我唯一需要的是创建一个 setup visual studio 项目,它可以一次构建我的安装包的所有这 8 个配置。

例如

Cmd.exe «candle.exe –dPlatform=Win32 –dConfiguration=Debug –dBuild=Server Product.wxs»
Cmd.exe «light.exe –ext WixUIExtension –ext WiXIISExtension Product.wixobj –out Product_Server(Release)_x86.msi»

Cmd.exe «candle.exe –dPlatform=Win32 –dConfiguration=Release –dBuild=Server Product.wxs»
Cmd.exe «light.exe –ext WixUIExtension –ext WiXIISExtension hsm.wixobj –out Product_Server(Release)_x86.msi»

但我不能使用基于命令提示符的解决方案。需要一个完全 WiX 设置解决方案。

有什么建议吗?

【问题讨论】:

  • 我发现的唯一方法是基于一个源 wxs 文件创建 2 个不同的解决方案,使用 WPlatform 和 WConfiguration 并在不同的解决方案中使用不同的 Build 值。有没有办法只有一种解决方案?
  • 啊!此问题无法在一个解决方案中创建具有不同名称的 msi。伙计们!!!任何问题请!

标签: wix setup-project


【解决方案1】:

似乎是一个无法解决的问题。唯一的方法 - 创建不同的项目......从 vs 我们只能操作诸如“平台”和“配置”之类的预处理器变量。每个额外的预处理器变量都会迫使我们在“variable_range”中使用多个解决方案。

显而易见的建议是将您的源代码分开在不同的文件中。只是为了同意您对每个构建的正确开发方式的关注。但是这种方式给源代码带来了更多的可读性。

可能会被删除...但是,如果有人知道这个问题的真正解决方案...请告诉我。

【讨论】:

  • 这个问题就像是开发者的日记......只是你的想法......真的没有人能回答......甚至“没有办法解决”......
【解决方案2】:

您可以通过创建新的构建配置来创建单独的输出。例如,我们有两种使用非常相似的来源构建的产品。您可以在属性组中指定输出名称。它将手动编辑您的 wixproj,但会在 Visual Studio 中正常加载。

做这样的事情:

<PropertyGroup Condition=" '$(Configuration)' == 'Debug (App1)' ">
    <OutputName>App1</OutputName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug (App2)' ">
    <OutputName>App2</OutputName>
</PropertyGroup>

Visual Studio 应该显示两种配置 - 调试 (App1) 和调试 (App2)。

【讨论】:

    【解决方案3】:

    过去 1/2 天我一直在尝试解决这个问题。在我看来,唯一的方法是单独的项目。我正在尝试对项目进行命令行重新编译,但似乎 MSBuild 在编译 wixproj 文件时没有检测到构建属性的更改,然后 WiX 编译器没有选择正确的源文件在我运行“清理”以强制重新编译之后。

    至少对于多个​​项目,源代码可以共享并在一个解决方案中全部使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-25
      相关资源
      最近更新 更多