背景ジェンキンスとMSBuildのは、同じDLLを含んでのWiXの.msiのmutlipleのバージョンを構築しません
私は、Windowsのサービスを構築し、その後からの.msiをコンパイルするのMSBuildを使用しジェンキンスプロセスを持っていますWiXプロジェクト。サービス自体は、それが実行されている構成に基づいて異なる処理を行い、この構成はapp.configを介してサービスに割り当てられた番号によって決定されます。たとえば、FooService1は特定のレコード、FooService2のレコードなどを処理します。異なるバージョンでは、コンパイルされたDLLとまったく同じものが実行されますが、app.configに割り当てられているサーバー番号のみが異なります。
私は、同じサービスのこれらの異なるバージョンを同じマシン上で実行しており、Jenkinsを介して自動化されたさまざまなサービスのビルドプロセスを実行したいと考えています。私は、PowerShellスクリプトを使用してapp.config内のサービス番号を割り当てて、そのサービス番号をMSBuild経由で渡し、WiX変数を使ってWindowsサービスの名前とサービスが動作するフォルダの名前を変更しています。
質問/問題
ので.wixprojの最初のMSBuildは罰金行きます。しかし、その後、次のMSBuildは、「方法はあるすべての出力ファイルは、入力ファイル
に関して最新であるため、それが
ターゲット「コンパイル」をスキップであることを報告しますMSBuildは.wixprojを再度コンパイルするべきだと思っている?私の最終目標は、3つのバージョンのサービスが必要な場合、Jenkinsはソリューションを一度コンパイルしてからWiXプロジェクトを3回ビルドし、FooService1.msi、FooService2.msi、およびFooService3.msiを含む/ binを作成します。各インストーラには同じdllが含まれていますが、app.configは異なっています。
私は、これは設定ファイルを変更するには、よりクリーンで自己完結型の方法であることを好みます。しかし、同じマシンで複数のバージョンの同じサービスを実行する必要があるという問題は解決していないようです。私は、それぞれのサービスタイプに対して別々のサービスを持つことができる必要があります。最終的に私はそのマシンのプロセスマネージャーをチェックし、FooService1、FooService2などを見ることができました。それで、同じdllを持つ複数のインストーラを生成しようとしていたのです。 – bcwiniger
同じテクニックを使用して、サービス名のプロパティを追加することもできます。あなたはxsltを必要としないので、さらに簡単になるはずです。 –
すごい!だから私はサービス名とそのサービスが1回の襲撃で動作するディレクトリを変更することができました。それは人生をはるかに簡単にします。 – bcwiniger