2011-06-26 8 views
0

私はwambコンパイルを統合する必要があるteambuild/msbuildを使って現在のビルドを持っています。msbuild wix projファイル

Wixプロジェクトは、ビルドされているソリューションの一部ではなく、TFSBuild.projディレクトリを使用して取得されるさまざまなツールとともに存在します。

セットアッププロジェクトをビルドする前に、私はHeatを使用して、コンパイル後のターゲットの間に作成された2つのディレクトリを収穫する必要があります。私は、これは[OK]を働いていたが、今、私は

後のコンパイル対象はこの

<Target Name="AfterCompile" DependsOnTargets="CopyOutputFiles;BuildMsi;BuildZip" /> 
コピー出力ファイルを特定のディレクトリにコンパイルされたファイルをコピーし

とのように見える私のWiXのプロジェクトをコンパイルするかどうかはわかりませんそれらについてもう少し作業しますが、これは私のWixプロジェクトに含める必要がある出力です。

BuildMsiターゲットは現在このように見えます。

<Target Name="BuildMsi" > 
    <Message Text="Start harvesting Website files for Wix compliation" /> 
    <HeatDirectory 
        ToolPath="$(WixToolPath)" 
        Directory="$(DropLocation)\Latest\x86\Release\_PublishedWebsites\IFMA.MasterPlan.Web" 
        GenerateGuidsNow="yes" 
        ComponentGroupName="MasterPlanWeb" 
        OutputFile="$(MSBuildProjectDirectory)\Setup\Product\Fragments\wwwfiles.wxs" 
        SuppressFragments="yes" 
        DirectoryRefId="WEBROOT" 
        KeepEmptyDirectories="yes" 
        PreprocessorVariable="var.WebRoot" 
        SuppressRegistry="yes" 
        SuppressRootDirectory="yes" 
        SuppressCom="yes" /> 

    <Message Text="Finished harvesting Website files for Wix compliation" /> 

    <Message Text="Start harvesting database files for Wix compliation" /> 
    <HeatDirectory 
        ToolPath="$(WixToolPath)" 
        Directory="$(DropLocation)\Latest\x86\Release\Database" 
        GenerateGuidsNow="yes" 
        ComponentGroupName="MasterPlanWeb" 
        OutputFile="$(MSBuildProjectDirectory)\Setup\Product\Fragments\dbfiles.wxs" 
        SuppressFragments="yes" 
        DirectoryRefId="WEBROOT" 
        KeepEmptyDirectories="yes" 
        PreprocessorVariable="var.WebRoot" 
        SuppressRegistry="yes" 
        SuppressRootDirectory="yes" 
        SuppressCom="yes" /> 
<Message Text="Finished harvesting database files for Wix compliation" /> 
    </Target> 

だから今ウィックスディレクトリ$(MSBuildProjectDirectory)\セットアップは断片にそのニーズを持っており、私は基本的にWiXのプロジェクト "$(MSBuildProjectDirectory)\セットアップ\のSetup.proj" をコンパイルする必要があります。

キャンドルタスクを呼び出してさまざまなプロパティを指定してから、その出力をライトタスクに渡す必要がありますか、または必要なすべての情報を既に持っているため、.projファイルを直接コンパイルすることはできますか(例えば、参照されたライブラリなど)。

+0

ソリューションにセットアッププロジェクトを含めない特別な理由はありますか? .wixprojのBeforeCompileAndLinkターゲットで手動でディレクトリを取得することはできます。 –

答えて

1

あなたの製品のコンパイル要素のリストを持つ.wixprojを作成し、上のBuildMsiターゲットを.wixprojに置き、BeforeCompileAndLinkをスケジュールします。その後、TFSをポイントして.wixprojをMSBuildします。

あなたのセットアップビルドがきれいに含まれています。

関連する問題