2016-06-23 2 views
3

내 프로젝트의 .csproj 파일의 AfterBuild 섹션에 명령을 추가했습니다.이 파일은 릴리스 구성 인 경우 자동으로 NuGet 패키지를 만듭니다. 아래 코드 스 니펫에 지정된이 부분은 잘 작동합니다.Visual Studio에서 빌드 후 이벤트로 'nuget add'를 실행하는 방법은 무엇입니까?

<Target Name="AfterBuild" Condition=" '$(Configuration)' == 'Release'"> 
    <Exec Command="nuget pack $(ProjectFileName) -IncludeReferencedProjects -Prop Configuration=Release"></Exec> 
</Target> 

지금 내 로컬 저장소에 NuGet 패키지를 복사하기 위해 추가 nuget add $(NugetFileName) -source c:\NugetLocal 명령을 추가하고 싶습니다. 아쉽게도 $(NugetFileName) 매크로가 없습니다. $(TargetName) 매크로를 .nupkg과 결합하여 사용할 수는 있지만 패키지 이름에 어셈블리 버전 번호가 포함되어있어 편리한 매크로가없는 것으로 보입니다. MSBuild 스크립트를 사용하지 않고이를 수행 할 수있는 방법이 있습니까?

답변

2

빌드 후 이벤트에서 버전 번호를 노출하는 방법을 보여주는 answer to a previous question이 있습니다. 이미 가지고있는 것과 결합하여 버전 번호가 인 명령을 실행할 수 있습니다.

<Target Name="AfterBuild" Condition=" '$(Configuration)' == 'Release'"> 
    <GetAssemblyIdentity AssemblyFiles="$(TargetPath)"> 
     <Output TaskParameter="Assemblies" ItemName="AssemblyVersion" /> 
    </GetAssemblyIdentity> 
    <Exec Command="nuget pack $(ProjectFileName) -IncludeReferencedProjects -Prop Configuration=Release"></Exec> 
    <Exec Command="nuget add $(TargetName).%(AssemblyVersion.Version).nupkg -Source C:\NugetLocal"></Exec> 
</Target> 
관련 문제