2017-05-04 1 views
0

안녕하세요 .net 코어 스타일을 사용하도록 csproj를 변경하려고했습니다. 이 프로젝트는 내가 너겟 패키지를 생성하는 클래스 라이브러리입니다. 모든 내가이 SLN에 몇 가지 프로젝트의 버전을 구동하기 위해 공유 어셈블리 파일을 사용하려고하지만 하드 코드 값Dotnet 팩은 버전 속성에 대한 동적 변수를 고려하지 않습니다.

<Version>1.0.1.1</Version> 

로 값을 지정하면 변경으로 잘 작동하는 것 같다. 어떤 dll하지만 괜찮아 작동하지 않는 nuget 패키지를 생성합니다. dotnet pack을 실행하면 같은 문제가 발생합니다.

이 작업을 수행하기 위해 몇 가지 시도했지만 가장 놀라운 것은 변수를 무시하는 방법 인 것 같습니다. 예 :

<Version>$(Version)</Version> 

<Target Name="SetVersion"> 
<PropertyGroup> 
    <Version>1.0.1.1</Version> 
</PropertyGroup> 

InitialTargets="SetVersion"는 DLL은 모든 변수가 설정되는 어떤 버전 1.0.1.1 이상이 발생. 그러나 nuget 패키지는 여전히 버전 1.0.0.0을 생성합니다.

내가 지정하면 동일한 출력 :

<GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute> 

그리고는 SharedAssembly.cs 파일의 버전을 읽을 수 있습니다. dll은 올바른 버전이지만 nuget 패키지는 아닙니다.

내가 dotnet pack를 호출 할 때 난 그냥 버전을 지정할 수 있습니다 알고 있지만 그것을 피하기 위해 기대했다 및 <PackageVersion>를 사용하려고 VS

에서

답변

1

를 빌드를 실행할 때 그냥 제대로 일이 : 그것은 그래서 이것은 MSBuild에서 호텔입니다 <PropertyGroup> 그룹에 들어가기 :

<PropertyGroup> 
    <PackageVersion>1.0.1.1</PackageVersion> 
</PropertyGroup> 
+0

놀라워요! 그거야. 고마워 –

관련 문제