2012-07-08 3 views
3

Nuget.exe는 파일 시스템/구성 수준에서만 패키지 관리를 지원합니다. powershell 명령은 .proj 파일을 업데이트하는 마법을 명령합니다.nuget을 사용하여 패키지 관리자 콘솔 외부에서 프로젝트 파일 업데이트

그 말로는 Visual Studio (자동화 된) 외부의 NuGet 패키지의 최신 버전으로 csproj 파일을 업데이트 할 수있는 기능이 필요합니다.

기본적으로 내 패키지의 외부 Powershell 스크립트 안에 Install-Package (또는 다른 방법)를 어떻게 사용합니까?

UPDATE :

나는 다음과 같은 이유로 VS 외부 프로젝트 참조를 추가 할 수있는 능력 싶습니다.

내 회사에는 경우에 따라 서로 의존하는 많은 공유 라이브러리가 있습니다. TFS에서 Nugetter를 사용하여 Nuget 패키지를 만들고 게시합니다. 프로젝트가 모든 최신 버전에서 빌드되고 실행될 수 없다면 개발자가 빌드 (패키지)를 대기열에 넣을 수 없도록하고 싶습니다. 이렇게하면 최신 버전의 라이브러리가 모든 최신 버전의 종속성과 함께 작동합니다. 빌드가 실패하면 VS에서 너겟 참조를 업데이트하고 컴파일러 오류/유닛 테스트를 수정해야합니다.

나는 NuGet 소스를보고 있었고 NuGet 소스를 VS 외부에서 proj 파일을 수정하는 쉬운 방법으로 발견했다고 생각합니다 (다소).

System.Type t = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0", true); 
var dte = (DTE)System.Activator.CreateInstance(t, true); 
dte.Solution.Open( 
    @"C:\Users\paul.knopf\Documents\Visual Studio 2010\Projects\SLNMemory\SLNMemory.sln"); 

기본적으로 Visual Studio의 메모리 내장 버전을 열고 Nuget 명령을 실행 한 다음 저장하십시오.

빌드 단계에서 GetWorkspace 이후에이 메모리 내 vs를 실행하여 모든 nuget 참조를 최신 버전으로 업데이트하고 싶습니다.

당신은 어떻게 생각하십니까? 확실히 속도는 느리지 만, 우리는 동일한 코드 기반에 있고 우리가 필요로하는 모든 기능을 갖추고있을 것입니다.

+0

읽어보기 : http://blog.davidebbo.com/2011/05/thoughts-on-installing-and-updating.html –

+0

블로그 게시물에 덧글을 달았습니다. 그것을보십시오. –

답변

1

설명대로 Visual Studio를 자동화하는 것이 가능합니다.

SharpDevelop를 사용하여 보았던 또 다른 방법은 install NuGet packages outside of Visual Studio입니다. NuGet PowerShell cmdlet은 솔루션을 수용하도록 수정되었으며 명령 줄에서 PowerShell 스크립트를 NuGet 패키지에 사용하는 것을 포함하여 설치를 자동화 할 수있었습니다. 코드가 업데이트되지 않아 이전 버전의 NuGet을 대상으로하지만 업데이트 될 수 있습니다. 다시 이것은 귀하의 솔루션 및 상당히 중량있는 솔루션과 유사합니다.

관련 문제