2013-11-20 6 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 ... 
.... 

감사를 전환하는 방법입니다.

Install-Package -ProjectName MyProject.UnitTests -Id NUnit 

이를 :

가 nuget 명령의 대부분은 당신이 사용하는 하나 지정할 수 있도록 -ProjectName 매개 변수를 사용 :
필립

특정 명령없이
+0

실행중인 명령의 종류는? 그것들은 nuget cmdlet 또는 다른 것들입니까? – Eris

+0

그건 nuget 명령입니다. 내 문제는 정말 맞는 프로젝트를 선택하는 것입니다 – PhilippeC

답변

0

이 내가 할 수있는 최선입니다 명령에 -Project를 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

관련 문제