2017-03-10 1 views
1

두 개의 매우 비슷한 dotnet core REST API가 있습니다. 배포하기 위해 갈 때 문제없이 실행됩니다. 그러나 다른 컴퓨터는 컴퓨터를 잠그기 전에 로그에 다음 메시지를 인쇄합니다.왜 내 dotnet 핵심 프로젝트가 다시 압축됩니까?

Project app (.NETCoreApp,Version=v1.0) will be compiled because 
the version or bitness of the CLI changed since the last build 

왜 재 컴파일이 트리거됩니까? 왜이 두 프로젝트 중 하나만 재 컴파일을 유발할 수 있습니까? 나는 이것을 전혀 막을 수 있습니까? 모든 도움이 크게 감사 할 것입니다. 중요한 정보를 빠뜨린 경우 알려주십시오.

+0

"컴퓨터를 잠그기 전에?"라고 말하면 무엇을 의미합니까? –

+0

사용중인 .NET SDK의 버전은 무엇입니까? –

+1

@ShaunLuttin 답변을 주셔서 감사합니다, 몇 가지를 배제하는 것이 도움이되었습니다. 두 앱 모두 버전 1.0.0-preview2-003131을 사용하는 고정 컨테이너에서 실행되며 두 global.json 파일은 사용할 버전을 지정합니다. 두 컨테이너가 같은 버전을 사용하고 있지만 다른 컨테이너는 이전에 컴파일 된 반면 다른 컨테이너는 다시 컴파일해야한다는 것을 확인했습니다. 재 컴파일을 시도 할 때 해당 컴퓨터의 CPU가 시스템을 사용할 수없는 지점까지 스로틀 링합니다 (사과, "잠긴"은 사용할 수있는 명확한 형용사가 아닙니다). 이견있는 사람? – user1991179

답변

2

짧은 대답 재 컴파일의 원인은 무엇

가 트리거 할?

재 컴파일은 .NET Core 명령 줄 인터페이스 (CLI)의 버전 및/또는 비트 (x86 또는 x64)가 프로그램 빌드 및 실행간에 변경 될 때 발생합니다.

명령 줄에서 dotnet --version을 실행하여 버전을 찾고 dotnet --info을 실행하여 비트를 찾습니다.

왜 두 프로젝트 중 하나만 재 컴파일을 트리거 할 수 있습니까?

구체적인 설정에 따라 다릅니다. 프로젝트 중 하나가 실행중인 버전과 다른 버전/비트의 CLI로 빌드 중입니다.

나는 이것을 전혀 방지 할 수 있습니까?

주어진 프로젝트의 경우 동일한 CLI 버전/비트로 빌드하고 실행하십시오. global.json file's sdk.version 등록 정보를 사용하거나 하나의 CLI 버전 만 설치하여이를 제어 할 수 있습니다.

일부 세부 사항

이 설치 .NET의 CLI 버전을 두 개 이상있는 경우는, 로컬 오류를 다시 만들 수 있습니다. 예를 들어 다음 버전을 모두 설치했다고 가정하고 CLI 버전 1.0.0-preview2-003156을 사용하여 새로운 dotnet 핵심 응용 프로그램을 만들고 빌드 한 다음 CLI 버전 1.0.0-preview2-003133을 사용하여 실행하십시오.

PowerShell을 :

출력
cd C:/ 
New-Item -type Directory foobar 
cd foobar 
Add-Content -Path global.json -Value '{ "sdk" : { "version": "1.0.0-preview2-003156" }}' 
dotnet new 
dotnet restore 
dotnet build 
Clear-Content -Path global.json 
Add-Content -Path global.json -Value '{ "sdk" : { "version": "1.0.0-preview2-003133" }}' 
dotnet run 

다음 CLI의 버전 또는 비트 수는 마지막 빌드

이후 변경 되었기 때문에

프로젝트는 foobar (.NETCoreApp, 버전 = V1.0)이 컴파일됩니다

관련 문제