2013-10-31 80 views
0

我有作爲TeamCity的NuGet構建的命令行工具。下載nuget並在TeamCity構建步驟中執行

我的問題是,我想在同一個TeamCity服務器的構建步驟中使用該工具,並在步驟中執行命令行工具。

最簡單的方法是編譯命令行工具並創建工件而不創建NuGet,然後在其他生成過程中執行工件依賴並執行該命令。

但我想知道是否有可能對NuGet包做同樣的處理,以便我可以重用該工具用於其他目的?

更新 經過對TeamCity的更多測試後,我認爲主要問題是「NuGet Installer」runner需要一個解決方案文件。我可以做我想做的與PowerShell的任務:

# install the latest package 
%teamcity.agent.tools.dir%\NuGet.CommandLine.2.7.1.nupkg\tools\NuGet.exe install octospike-migrator -o tools -excludeversion -source %teamcity.nuget.feed.server% 
# run the command line tool 
.\tools\octospike-migrator\lib\Octospike.Command.exe 

構建步驟上面正在開發一種意圖,但我的感覺是,默認運行「的NuGet安裝」應該能處理呢?

我跑TC7所以它可能在TC8

回答

1

合作假設封裝解決方案中的引用,你必須啓用包丟失恢復啓用,包將被下載並解壓到您的解決方案。可執行文件將進入已知位置(無論您爲該軟件包指定了哪個目錄)。您應該可以像訪問其他資源一樣訪問可執行文件。

如果您需要有關資源解壓的位置和方式的靈活性(例如,如果他們需要進入項目之外的目錄),則可以將其作爲NuGet中的工具包構建。

在TeamCity中,如果將此過程分解爲單獨的任務,複雜性將會降低。

+0

我認爲創建一個解決方案只是爲了獲取/提取一個包是有點矯枉過正。我只是想在構建步驟中從powershell執行程序。 – orjan

+0

NuGet主要是Visual Studio解決方案的包管理工具。如果您不用於在Visual Studio解決方案中管理軟件包,則可以查看其他選項,例如直接使用nuget.exe: http://blog.davidebbo.com/2011/01/installing-nuget-包 - 直from.html – kiprainey

相關問題