WIX プロジェクトのユーザー入力に基づいて、相互に排他的なアプリケーションを相互に排他的な環境にデプロイしたいと考えています。私が行った調査によると、条件を使用してこれを行うことはできないことがわかりましたhttp://www.joyofsetup.com/2007/05/30/feature-conditions-and-ui/ これはかなり一般的な質問であり、決定的なもののようですベストプラクティスは価値があります。
上記の記事に従って、機能と発行イベントを使用してこれを実装しました。私のUIのイベントは以下の通りです。
私の状況では、相互に排他的な 2 つの Web アプリケーションのいずれかを 3 つの異なる環境のいずれかにインストールしています。インストールするアプリケーションとインストール先の環境に応じて、アプリケーションと web.config 以外のすべてのファイルに 1 つ、web.config ファイルに 6 つの 8 つの機能を作成して、これを行いました。以下のパブリッシュ要素によって制御されているにもかかわらず、ICE 検証に合格するために各機能に条件を含める必要がありました。これは、これらの機能が異なるサーバー上の同じ名前のディレクトリにインストールされているためです。より良い方法はありますか、またはこれはこの種の状況の標準的な方法ですか?
<Publish Event="AddLocal" Value="WebApp"><![CDATA[ServerType="Web"]]></Publish>
<Publish Event="Remove" Value="WebApp"><![CDATA[ServerType<>"Web"]]></Publish>
<Publish Event="AddLocal" Value="DataApp"><![CDATA[ServerType="App"]]></Publish>
<Publish Event="Remove" Value="DataApp"><![CDATA[ServerType<>"App"]]></Publish>
<Publish Event="AddLocal" Value="WebDevConfigFeature"><![CDATA[ServerType="Web" AND Environment="Dev" ]]></Publish>
<Publish Event="Remove" Value="WebDevConfigFeature"><![CDATA[ServerType<>"Web" OR Environment<>"Dev"]]></Publish>
<Publish Event="AddLocal" Value="WebQAConfigFeature"><![CDATA[ServerType="Web" AND Environment="QA" ]]></Publish>
<Publish Event="Remove" Value="WebQAConfigFeature"><![CDATA[ServerType<>"Web" OR Environment<>"QA"]]></Publish>
<Publish Event="AddLocal" Value="WebProdConfigFeature"><![CDATA[ServerType="Web" AND Environment="Prod" ]]></Publish>
<Publish Event="Remove" Value="WebProdConfigFeature"><![CDATA[ServerType<>"Web" OR Environment<>"Prod"]]></Publish>
<Publish Event="AddLocal" Value="AppDevConfigFeature"><![CDATA[ServerType="App" AND Environment="Dev" ]]></Publish>
<Publish Event="Remove" Value="AppDevConfigFeature"><![CDATA[ServerType<>"App" OR Environment<>"Dev"]]></Publish>
<Publish Event="AddLocal" Value="AppQAConfigFeature"><![CDATA[ServerType="App" AND Environment="QA" ]]></Publish>
<Publish Event="Remove" Value="AppQAConfigFeature"><![CDATA[ServerType<>"App" OR Environment<>"QA"]]></Publish>
<Publish Event="AddLocal" Value="AppProdConfigFeature"><![CDATA[ServerType="App" AND Environment="Prod" ]]></Publish>
<Publish Event="Remove" Value="AppProdConfigFeature"><![CDATA[ServerType<>"App" OR Environment<>"Prod"]]></Publish>
<Publish Event="EndDialog" Value="Return">1</Publish>