2011-12-23 18 views
2

私たちが持っているアプリケーションごとに一連のWiXプロジェクトを作成してみてください。開発者がアップデートされたバージョンのアプリケーションをリリースする準備が整ったら、ソースファイルをSourceDirにコピーしてから、.batファイルを実行すると、heat.exeが実行され、ファイルのリストが取得されます。パッケージ化する必要があります。その後、CandleとLigthはSourceをmsiにコンパイルします。どのように私はWiXパッケージを自動化できますか

また、パブリックプロパティの値を使用してパッケージをビルドするときに、App.configファイルを変更する必要があります。私の調査を通して、私がこれを使って行うことができるとわかった。問題は、私がutil:XmlFile Id = "SetKey1"を追加することによってこれを行う必要があることです...設定ファイルのComponentsenet要素の下に。

 <Component Id="App.config" Guid="{B62F28B1-FFB3-4E93-B651-FFC7AAD4730D}"> 
     <File Id="App.config" KeyPath="yes" Source="SourceDir\New Folder\New Folder2\App.config" /> 
     <util:XmlFile Id="SetKey1" 
      Action="setValue" 
      ElementPath="//appSettings/add[\[]@key='Key1'[\]]/@value" 
      Value="[NEWVALUE]" 
      File="[#App.config]" 
      SelectionLanguage="XPath" 
      Sequence="1" /> 
     </Component> 

次回に熱くなったときにそのビットが消えてしまうので、これはうまくありません。設定ファイルが変更されたビットを分離する方法はありますか?

答えて

0

少なくとも2つのwxisが必要です。 1はメインプロダクト用でコンポーネントを含み、もう1つはHEATedファイルになります。

主要なProduct.wxs(またはそれを呼び出すもの)でディレクトリを指定でき、熱を実行するときにディレクトリrefを指定できます。

ie。あなたが熱を実行すると

<Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="INSTALLLOCATION" Name="MyApp"> 
     <Directory Id="WEBROOT" Name="wwwroot" /> 
     </Directory> 
    </Directory> 

あなたは、限り、あなたはファイルが含まれます両方一緒にWXSをコンパイルすると、WEBROOTとしてdirectoryrefを指定します。

例えば、熱[その他のパラメータ] -dr WEBROOT

+0

ありがとう、ダニエル、ありがとう、あなたもこれで私を助けることができます。コンポーネントの1つがapp.configファイルでpublicプロパティの値で上書きしたいと思ったのですが、加熱されたwxisファイルの外側からそのコンポーネントを参照して、util:XmlFile – user979441

関連する問題