2017-02-23 70 views
0

我想設置要在TeamCity生成運行時打包的項目。爲了做到這一點,我在TeamCity構建中有一個自定義參數設置。 參數是項目名稱的集合,在運行構建時,會提示您從預定義的一組值(項目名稱)中選擇該項目名稱。如何將項目設置爲在Team City中進行自定義生成運行的打包

例如起見讓我們說這個自定義參數是:

ProjectToPackage: Project1, Project2, Project3 

在構建步驟後來的NuGet包我想用這個參數來決定哪些項目打包。所以,在規範文件中我有:

trunk/*/*.csproj 

這是包中的所有項目,我現在想反映自定義參數的選擇,這樣的事情:

trunk/*/%ProjectToBuild%.csproj 

現在,這顯然不會,如果工作多個值被選擇,如在情況下,當多個值選擇的參數是「」分隔的字符串,egif PROJECT1Project2的選擇,ProjectToPackage「PROJECT1 ,Project2" 的,因此規範文件選擇將轉向:

trunk/*/Project1, Project2.csproj 

這當然會失敗。

所以我正在尋找一種方式來輸入項目名稱作爲TeamCity構建的結果打包。

回答

0

爲了完成這個,必須編寫一些MSBuild腳本。 考慮到有自定義參數設置,其中列出了所有項目是packaged名稱爲ProjectsToBuild,這裏的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> 
相關問題