2

Web アプリケーション用に WIX を使用して MSI セットアップを作成しています。これは正しく動作します。私がうまくいかない唯一のことは、標準の Web アプリケーション発行方法の構成変換を有効にすることです。

既存のターゲット ファイルに using タグを追加できることを理解しました。WIX インストーラーのプロジェクト ファイルの AfterBuild ターゲットにを追加しようとしましたTransformXmlが、うまくいきません。

<TransformXml Source="Web.Config" Transform="Web.$(Configuration).config" Destination="Web.Config" />

誰かが私を助けることができますか?

WebApplicationWixという名前のテスト プロジェクトを作成しました。

4

1 に答える 1

2

サンプル プロジェクトで TransformXml についての言及はありませんでした。

次のようなコードが必要です。

<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll" />
<Target Name="AfterCompile">
  <CallTarget Targets="TransformWebConfiguration" Condition="Exists('web.$(Configuration).config')"/>
</Target>

<Target Name="TransformWebConfiguration">
  <!-- Generate transformed web configuration -->
  <TransformXml Source="web.config" Destination="web.transformed.config" Transform="web.$(Configuration).config" />
</Target>

注意すべき点がいくつかあります。

  1. UsingTask 要素の Microsoft.Web.Publishing.Tasks.dll へのパスを確認します (Visual Studio のバージョンに合わせて変更してください)。
  2. あなたの例では、ソースと宛先は同じでした。ファイル ロックの問題が発生したり、変換しようとしている web.config を変換されたもので上書きしたりしないように、宛先が別のファイルであることを確認する必要があります。
  3. Visual Studio 2010 では、TransformXml にファイル ロックの問題があったため、2010 を使用している場合は注意してください。
于 2013-10-22T21:41:56.583 に答える