2013-11-20 83 views
1

我們在開發中使用了定製的Nuget包。
這些軟件包安裝命令是通過解決方案的不同項目中的不同參數啓動的。
手動,在控制檯軟件包管理器,該突未爲如下:在Visual Studio 2012中編寫Nuget包控制檯腳本

PM> ==> Select default Project1 in the ComboBox 
PM> Run Command1 ParamA1 ParamB1 ... 
PM> ==> Select default Project1 in the ComboBox 
PM> Run Command2 ParamA2 ParamB2 ... 
Etc 

每個項目。

由於這些定製軟件包是一項正在進行的工作,它們會經常更新,我們必須在每個新版本中重新運行所有這些命令。

這個手動過程是單調乏味且容易出錯的。

我想編寫此過程的腳本。
我知道如何創建一個PowerShell腳本發出的命令,但我不知道是如何在不同項目之間

Script.ps1 
# Select Project1 ?? 
Command1 ParamA1 ParamB1 ... 
# Select Project2 ?? 
Command2 ParamA2 ParamB2 ... 
.... 

在此先感謝您的幫助進行切換。
菲利普

+0

您運行的是什麼樣的命令?他們是否使用cmdlet或其他? – Eris

+0

這就是nuget命令。我的問題是真的要選擇正確的項目 – PhilippeC

回答

0

沒有特定的命令,這是最好的,我可以這樣做:

大多數的NuGet命令接受-ProjectName參數允許你指定要使用哪一個:

Install-Package -ProjectName MyProject.UnitTests -Id NUnit 

這些命令也有作爲ValueFromPipeline和ValueFromPipelineProperty項目,所以下面的工作:

Get-Project -All | Install-Package -Id NUnit 

您還可以過濾它:

Get-Project -All | 
    Where { $_.ProjectName -imatch "Test" } | 
    Install-Package -Id NUnit 

或者,如果你想成爲更復雜:

Get-Project -All | 
    Foreach-Object { 
     if (($_.Type -imatch "C#") -and ($_.ProjectName -imatch "Test")) { 
      Install-Package -Id NUnit -ProjectName $_.Project 
     } 
} 
+0

感謝您的詳細解答。但它假定我的命令支持-ProjectName開關,但情況並非如此......我仍在尋找一種方法來以編程方式更改PM控制檯中的默認項目。 – PhilippeC

相關問題