2017-04-09 2 views
0

이상한 포터블 프레임 워크 조합 대신 .NET 프로젝트를 기반으로 프로젝트를 변경하려고합니다..NET 표준 프로젝트에서 Nuget 패키지를 빌드 할 때 패키지 버전을 무시 하시겠습니까?

릴리스 바이너리와 .nupkg 패키지를 빌드 할 때 버전이 물론 .csproj 파일에 지정된 것을 제외하면 모든 것이 순서대로있는 것 같습니다.

방법이 있습니까? msbuild 명령 줄이나 배치 파일을 사용하여이 속성을 재정의 하시겠습니까?

기본적으로 2.3.4.5 버전을 빌드하려면 msbuild 또는 환경 변수 (프로젝트 파일을 수정하는 것이 부족합니다)를 사용하여 nuget 패키지의 최종 버전을 버전 2.3.4.5로 만들 수 있습니까?

이전에 나는 AssemblyInfo.cs 파일을 조작하려고했던 FinalBuilder 프로젝트를 가지고 있었지만, 이것은 적어도 두 번은 수정 된 파일을 저의 저장소에 저지른 점에서 오류가 발생하기 쉽습니다. 빌드 프로세스 중에 버전을 주입 한 솔루션에 훨씬 더 만족할 것입니다.

이 내 현재 MSBuild를 명령 줄입니다 :

msbuild DiffLib.sln /target:Clean,Rebuild /p:Configuration=Release 

답변

0

OK, 그래서이 아주 쉬웠다 밝혀졌습니다. 나는 속성에서 사용할 수있는 변수를 얻기 위해 다양한 MSBuild에서 파일을 해킹하는 방법에 대한 몇 가지 질문을 찾았지만 그것이 나오는 것에 따라 내가 필요한 모든이 있었다 :

마지막 nuget 패키지가 이렇게 지명되었다
msbuild DiffLib.sln /target:Clean,Rebuild /p:Configuration=Release /p:Version=2.3.4.5 
                    ^----------------^ 

DiffLib.2.3.4.5.nupkg 

및 내부의 dll에도 올바른 버전이 있습니다.

이 파일은 .NET 표준 프로젝트이므로 .csproj 파일은 전통적인 .csproj 파일 형식 대신 .nuspec 파일처럼 보입니다. 이것은 이것이 지금 아주 쉬운 이유일지도 모릅니다.