【问题标题】:WiX installer conditional compilation?WiX安装程序条件编译?
【发布时间】:2014-04-02 08:27:52
【问题描述】:

我的主要可执行文件有两个版本:standardpremium。为了简化开发,它们是通过更改特殊的 #define 变量从 Visual Studio 中的单一解决方案构建的。

现在我很好奇是否可以对这个项目的 WiX 安装程序做同样的事情?

我基本上只需要控制包含以下 xml 节点之一:

1:对于standard 版本 MSI:

<Product Name='Foobar 1.0 - Standard' 
    Id='8E9CF27F-B92F-4CB3-BBA0-0AAE5376D5EB' 
    UpgradeCode='20A89269-D206-490D-9134-349594662619'
    Language='1033' 
    Codepage='1252' 
    Version='1.0.0' 
    Manufacturer='Acme Ltd.'>

及以后:

<Component Id='MainExecutable' Guid='E1FE2BBE-C72D-4F27-A66D-78417F597D7A'>
 <File Id='FoobarEXE' Name='FoobarAppStandardl10.exe' DiskId='1' Source='FoobarApplStandard10.exe' KeyPath='yes'>

2:对于premium 版本 MSI:

<Product Name='Foobar 1.0 - Premium' 
    Id='8E9CF27F-B92F-4CB3-BBA0-0AAE5376D5EC' 
    UpgradeCode='20A89269-D206-490D-9134-34959466261A'
    Language='1033' 
    Codepage='1252' 
    Version='1.0.0' 
    Manufacturer='Acme Ltd.'>

然后:

<Component Id='MainExecutable' Guid='E1FE2BBE-C72D-4F27-A66D-78417F597D7B'>
 <File Id='FoobarEXE' Name='FoobarAppPremiuml10.exe' DiskId='1' Source='FoobarApplPremium10.exe' KeyPath='yes'>

附言。我显然可以制作 2 个 WiX 项目......我正在寻找一种方法来完成它。

【问题讨论】:

    标签: windows visual-studio-2010 wix


    【解决方案1】:

    我找到了。 Here it is 给其他感兴趣的人。

    【讨论】:

      【解决方案2】:

      就我而言,我需要将符号编译传递给将要编译的项目。我解决了重新编译和传递符号的问题。

      为此,编辑 wix 项目,例如“xx.wixproj”,并在文件末尾插入:

      <Target Name="MyName" AfterTargets="AfterResolveReferences">
       <MSBuild Projects="Path\xx.csproj" Properties="Configuration=$(Configuration);Platform=$(Platform);DefineConstants=$(DefineConstants)%3bMYSYMBOL;OutputPath=$(OutputPath)" />
      </Target>
      

      不幸的是,这个解决方案在 vs 2017(使用 .netstandard dll)和 WiX 4 中没有运行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-20
        相关资源
        最近更新 更多