2016-05-17 139 views
1

說明在TeamCity的構建步驟運行包管理器命令

我需要簽署的NuGet包(MathNet.Numerics)之前,我建我的項目,要做到這一點,我使用Nivot.StrongNaming包,我運行的命令下面在軟件包管理器控制檯

Install-Package Nivot.StrongNaming 
$root = join-path (split-path $dte.solution.filename) packages 
$solution = (split-path $dte.solution.filename) 
$key = Import-StrongNameKeyPair -KeyFile $solution\MuProjectFolder\Key.snk 
dir -rec $root\MathNet.Numerics.3.11.0\*.dll | where { -not (Test-StrongName $_) } | Set-StrongName -KeyPair $key -Verbose 

(注:我不能用包的簽名版本,因爲這是一個共享的項目,它會破壞其他項目...)

問題

有沒有一種方式,試圖來構建解決方案之前,我可以將這些步驟添加的TeamCity?這將確保我們已簽署。

如何在Team City項目的構建步驟中運行一些包管理器控制檯命令(Visual Studio)?

我可以將它作爲命令行運行嗎?

+0

你想恢復NuGet軟件包,還是更復雜? –

+0

@EvolveSoftwareLtd我在這個問題中增加了更多細節。 –

回答

2

我已經這樣做了,假設Nivot.StrongNaming不是packages.config中的引用包 - 如果是則忽略安裝包的相關步驟。

我也固定了版本號,所以它更容易導入PowerShell模塊文件 - 最終,您可能需要修補路徑才能使其在您的環境中工作,但從概念上說它沒有問題。

  1. 將以下腳本保存到一個名爲.ps1並將其添加到您的版本控制 - 這樣,你知道它會在生成代理,當你需要它。 sign-assembly-using-nivot.ps1

  2. 使用命令行步驟創建構建配置以安裝Nivot.StrongNaming(可選,具體取決於我的假設)和運行腳本的PowerShell步驟。我只安裝MathNet.Numerics,因爲我沒有解決方案。

enter image description here

命令行轉輪如果需要 enter image description here

PowerShell的轉輪來引導腳本 enter image description here

安裝Nivot.StrongNaming
  • 現在創建這些變量允許您輕鬆調整環境所需的路徑。
  • enter image description here

    你構建日誌應該是這個樣子

    enter image description here

    希望這有助於。

    相關問題