3

このような状況: 1 つの wxs ビルド ファイルがあります。これは、3 つのプリプロセッサ変数に基づいています。

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

必要なのは、セットアップ ビジュアル スタジオ プロジェクトを作成することだけです。これにより、インストール パッケージのこの 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 セットアップ ソリューションが必要です。

何かアドバイスはありますか?

4

3 に答える 3

1

解決できない問題のようです。唯一の方法は、異なるプロジェクトを作成することです... vs からは、「プラットフォーム」や「構成」などのプリプロセッサ変数のみを操作できます。プリプロセッサ変数を追加するたびに、「variable_range」でソリューションを複数にする必要があります。

明らかなアドバイスは、ソース コードを別のファイルに分けることです。各ビルドの適切な開発方法に注意を払うことに同意するだけです。しかし、この方法により、ソース コードが読みやすくなります。

削除される可能性があります...しかし、誰かがこの問題の本当の解決策を知っているなら...教えてください。

于 2012-06-09T05:57:14.637 に答える
1

新しいビルド構成を作成することで、個別の出力を作成できます。たとえば、非常によく似たソースから構築された 2 つの製品があります。プロパティグループで出力名を指定できます。wixproj を手動で編集する必要がありますが、Visual Studio で問題なく読み込まれます。

次のようにします。

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

Visual Studio には、Debug (App1) と Debug (App2) の 2 つの構成が表示されます。

于 2016-10-19T10:15:13.383 に答える
0

私はこれを解決するために最後の 1/2 日を費やしました。唯一のアプローチは別々のプロジェクトであるように私には思えます。プロジェクトのコマンド ライン再コンパイルを試みてましたが、wixproj ファイルのコンパイル時に MSBuild がビルド プロパティの変更を検出していないようで、「クリーン」を実行した後に WiX コンパイラが正しいソース ファイルを取得していないようです。再コンパイルを強制します。

少なくとも複数のプロジェクトでは、ソース コードを共有して、すべてを 1 つのソリューションで使用できます。

于 2013-12-04T16:02:17.640 に答える