2017-02-23 6 views
0

TeamCityビルド実行時にパッケージ化するプロジェクトを設定しようとしています。これを達成するために、私はTeamCityビルドでカスタムパラメータを設定しています。 パラメータはプロジェクト名に設定され、ビルド実行時に事前定義された値(プロジェクト名)のセットから選択するように求められます。カスタムビルド実行時にチームシティでパッケージ化するプロジェクトを設定する方法

例のためのこのカスタムパラメータがあるとしましょう:

ProjectToPackage: Project1, Project2, Project3 

その後私はパックに突出するかを決定するために、このパラメータを使用するビルドステップnugetパックインチだから、仕様ファイルに私が持っていた:

私はカスタムパラメータの選択、このような何かを反映するために、今したいすべてのプロジェクトは、パッケージである
trunk/*/*.csproj 

:今

trunk/*/%ProjectToBuild%.csproj 

これは明らか場合は動作しませんが、複数の値は、パラメータが選択された場合のケースのように複数の値は、「Project1のになり、選択されたProject1のProject2を egif、「」、ProjectToPackageを区切られた文字列を選択していますもちろん失敗する

trunk/*/Project1, Project2.csproj 

:、結果仕様ファイルの選択などのProject2"は、に変わります。

私はTeamCityビルドの結果としてパッケージ化するプロジェクト名を入力できる方法を探しています。

答えて

0

これを達成するには、MSBuildスクリプトを作成する必要がありました。 名前ProjectsToBuildpackagedするすべてのプロジェクトを一覧表示するカスタムパラメータ設定がある考慮すると、ここで仕事をしてくれたMSBuildのtargetです:

<Target Name="Pack"> 
    <ItemGroup> 
     <_SelectedProjectItem Include="$(ProjectsToBuild)" /> 
     <ProjectsToPack Include="$(MSBuildProjectDirectory)\*\%(_SelectedProjectItem.Identity).csproj" /> 
    </ItemGroup> 

    <Exec Command="$(PathToNuGetExe) pack %(ProjectsToPack.FullPath) -OutputDirectory $(OutDir) -IncludeReferencedProjects" /> 
    </Target> 
関連する問題