2017-09-23 13 views
1

나는이 문제에 대해 몇 시간 동안 불타고 있었고, 무슨 일이 일어나고 있는지 알아 내려고 많은 조사를 해왔다.Microsoft.Build.Framework.dll 15.3이 csproj를로드하지 않는 이유는 무엇입니까?

.csproj 파일에서 Project 파일을로드하는 응용 프로그램이 있으므로 Microsoft.Build dll을 참조합니다. 내 컴퓨터에서 모든 것이 잘 작동합니다. 또 다른 하나는 .csproj 파일을로드하려고 할 때 응용 프로그램이 다운됩니다.

내가 갖는 예외는 다음과 같은 메시지 유형 Microsoft.Build.Exceptions.InvalidProjectFileException이다 :

도구 버전 "15.0"는 인식이다. 사용 가능한 도구 버전은 "14.0", "2.0", "3.5", "4.0"입니다.

처음에는 무엇이 문제의 원인인지 확신 할 수 없으므로 .dll을 프로젝트의 일부로 포함시킬 것이라고 생각했습니다. 즉, .dll을 프로젝트의 폴더에 복사하고 해당 .dll을 참조했습니다. 하지만 출력 창은 다른 .DLL이로드되고 있음을 나에게 보여줍니다으로 GAC 로딩 환경, 나를 물고는 내 프로젝트를 실행할 때 :

가 '로드 C : \ WINDOWS \ Microsoft.Net \ 조립 \ GAC_MSIL \ Microsoft.Build.Framework \ v4.0_15.1.0.0__b03f5f7f11d50a3a \ Microsoft.Build.Framework.dll '.

그래서 각 컴퓨터에서 해당 위치로 이동하고 .dll에서 속성을 보면 .dll이로드되는 것을 보았습니다.

작동하는 컴퓨터에서 .dll 버전은 15.1.1015입니다. .dll이 작동하지 않는 컴퓨터에서 .dll 버전은 15.3.409입니다.

나는이 정확한 문제에 대해 이야기하는 사람들을 찾지 못했지만 사람들은 Visual Studio 15.3으로 업그레이드 한 후에 문제가 있음을 이야기했습니다. 물론 작동하지 않는 컴퓨터에는 Visual Studio 15.3.5가 있고 작동하는 컴퓨터에는 Visual Studio 15.2가 있습니다.

는이 문제를 해결하려고하기 위해, 나는 여기에 설명 된 단계를 사용하여 GAC에서 15.3 제거 :

Could not load type 'Microsoft.Build.Framework.SdkReference' on project open in VS 2017 U1 (15.3)

아아, 심지어이 변경 이후, 나는 아직도 그렇게 GAC에 변경 같은 문제가 발생하고 이전 Microsoft.Build.Framework.dll을 가리켜도 Microsoft.Build 패밀리의 다른 파일이 15.3에 GAC되어 있기 때문에 여전히 수정하지 않았습니다. GAC에 의해로드 된 버전이 현재 15.1인지 확인했습니다.

이 문제를 해결하기 위해 적용 할 수있는 다른 해결책이나 해결책이 있습니까?

+0

msbuild 명령 줄을 사용하여 빌드를 시도 했습니까? 이 단계를 통과해야합니다. 그렇지 않으면 msbuild에서 문제가 발생할 수 있습니다. 'msbuild ' –

+0

을 시도하십시오. 아직 빌드를 실행하지 않아서 msbuild .exe가 문제가되는 이유를 모르지만 .csproj를로드하려고합니다.즉, 프로젝트는 Visual Studio에서 올바르게로드되고 VS2017 –

답변

0

다른 사람이 이보다 더 좋은 답변을하기를 바랍니다. 그러나 프로젝트를로드 할 때 버전 14.0을 강제 실행하여 문제를 해결할 수 있었으면합니다. 내 프로젝트에는 Visual Studio 2017 (MSBuild 15.X)이 필요하지 않습니다. Visual Studio 2015에서로드 할 수 있으므로 프로젝트 생성자에서 버전 번호를 지정하기 만하면됩니다.

coreVisualStudioProject = new Project(fileName, null, "14.0", new ProjectCollection()); 
+0

에 대한 개발자 명령 프롬프트에서 msbuild에 문제가 없으며 여기에서 솔루션을 공유해 주셔서 감사합니다. 응답으로 표시하여 다른 커뮤니티 회원에게 도움이 될 수 있습니다. 같은 문제. –