답변:
메모장 (또는 메모장 ++)에서 csproj 파일을 엽니 다.
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
그리고 그것을
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
이것은 특정 패키지 또는 빈에 의존하지 않는 글로벌 솔루션입니다.
제 경우에는 루트 디렉토리에서 Packages 폴더를 제거했습니다 .
패키지가 있지만 컴파일러가 참조를 찾지 못하기 때문에 발생할 수 있습니다. 따라서 먼저 이전 패키지를 제거하고 새 패키지를 추가하십시오.
새 패키지 를 추가하는 단계
이것은 적절한 해결책이 아니지만 동일한 문제에 직면했기 때문에 여기에 게시했습니다.
제 경우에는 Visual Studio에서 솔루션을 열 수 없었고 다른 SO 답변에 대한 도움도 얻지 못했습니다.
Microsoft.CSharp.targets
어떤 이유로 파일이 삭제되었습니다! 말했듯이 packages
폴더를 삭제 하고 Visual Studio를 다시 시작했는데 마술처럼 작동했습니다!
나에게 문제는 저장소가 복제 될 때 git이 공백 대신 문자를 추가했기 때문에 프로젝트 경로에 % 20 문자가 포함되어 있다는 것입니다. 패키지 경로가 너무 긴 경우 또 다른 문제가있을 수 있습니다.
git clone <RepoUrl> <LocalDirName>
는 % 20 것을 피하기 위해로 복제에 디렉토리의 이름을 지정
라는 오류가 발생하면 Microsoft.CSharp.Core.targets not found
다음 단계를 수행하여 내 문제를 수정했습니다.
이전 작업 프로젝트 폴더를 열고 오류에 표시된 링크, 즉 파일을 Projects/(working project name)/packages/Microsoft.Net.Compilers.1.3.2/tools/
검색 Microsoft.CSharp.Core.targets
하십시오.
이 파일을 복사하여 작동하지 않는 프로젝트에 넣습니다 tools folder
(즉, 위에 표시된대로 작동하지 않는 프로젝트의 도구 폴더로 이동).
이제 프로젝트를 닫고 (열린 경우) 다시 엽니 다.
지금 작동해야합니다.
또한 이제 열려있는 Visual Studio 프로젝트에서 모든 것이 제대로 작동하는지 확인하려면 Tools > NuGetPackage Manager > Manage NuGet Packages For Solution
. 여기에서 CodeAnalysis.dll이 다른 응용 프로그램에서 사용 중이라는 오류를 찾을 수 있습니다.
다시으로 이동 tools folder
하여 지정된 파일을 찾아 삭제하십시오. 로 돌아 오십시오 Manage NuGet Packages For Solution
. 새로 고침을 요청하는 링크를 찾아 클릭하면 모든 것이 다시 설치됩니다.
이제 프로젝트가 제대로 작동 할 것입니다.
제 경우에는 메모장에서 .csproj 파일을 열고 다음 세 줄을 제거했습니다. 매력처럼 작동 :
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props')" />
그래서 이렇게 말하면 어떨까요 : gt / lt 사이에
Import Project = "$ (MSBuildExtensionsPath) \ Microsoft \ Silverlight \ v3.0 \ Microsoft.Silverlight.CSharp.targets"/
타겟 오류를 어떻게 수정합니까?
또한 데모 프로젝트에서 가져 오기 문자열을 발견했습니다 (특히 Rob Eisenburg의 "Build your own MVVM Framework").
이 가져 오기를 lomaxx VS2010 RTM에서 제안한 가져 오기로 바꾸면 이 .
이 오류는 SL 5가 설치되어있는 동안 SL 4에서 빌드 된 Silverlight 프로젝트를 열 때도 발생할 수 있습니다.
다음은 오류 메시지의 예입니다. 가져온 프로젝트 "C : \ Program Files (x86) \ MSBuild \ Microsoft \ Silverlight \ v4.0 \ Microsoft.Silverlight.CSharp.targets"를 찾을 수 없습니다.
v4.0에 유의하십시오.
해결하려면 프로젝트를 편집하고 다음을 찾으십시오.
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
그리고 v5.0으로 변경하십시오.
그런 다음 프로젝트를 다시로드하면 열립니다 (SL 5가 설치되어 있지 않은 경우).
obj 폴더를 삭제 한 다음 프로젝트가 예상대로로드되었습니다.
때때로 문제는 .csproj 파일의 하드 코딩 된 VS 버전에있을 수 있습니다. 다음과 같이 csproj에있는 경우 :
[...]\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets"
번호가 올바른지 확인해야합니다 (잘못된 이유는 다른 버전의 Visual Studio로 만든 프로젝트 일 수 있음). 잘못된 경우 현재 버전의 빌드 도구로 바꾸거나 VS 변수를 사용하세요.
[...]\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets"
Microsoft.CSharp.Targets
을Microsoft.CSharp.targets
에서 로 변경해야했습니다.csproj
.