비슷한 문제가 발생했지만 v4.7.2
. 즉, 다음과 같은 빌드 로그 메시지가 계속 나타납니다.
error : Your project does not reference ".NETFramework,Version=v4.7.2" framework. Add a reference to ".NETFramework,Version=v4.7.2" in the "TargetFrameworks" property of your project file and then re-run NuGet restore.
비슷해 보였음에도 불구하고 위의 제안 된 단계 중 어느 것도 저에게 효과가 없었습니다. 빌드 할 때마다이 메시지가 계속 표시되었습니다. 아무것도 도울 수없는 것 같았습니다.
사실 문제는 마이그레이션으로 인해 하나 의 코드 폴더 에 두 개의 프로젝트 를 넣어야한다는 점과 관련 이 있습니다. 그중 하나는 .Net Core를 대상으로하고 다른 하나는 .Net Framework를 대상으로했으며 둘 다 동일한 .Net Standard 라이브러리를 참조했습니다. 분명히 그들은 obj
Core 프로젝트가 project.assets.json
파일을 넣는 동일한 폴더 를 공유 합니다. 실제로이 파일은 프레임 워크 프로젝트를 방해하여 정상적인 빌드를 방해합니다. Migrate from packages.config to PackageReference ... 를 수행 한 경우에도 가능한 솔루션 중 하나로 권장되었습니다.
프레임 워크 프로젝트 파일에 다음 코드 조각을 넣어 문제를 해결할 수 있습니다.
<Project>
...
<PropertyGroup>
<BaseOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/bin</BaseOutputPath>
<BaseIntermediateOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/obj</BaseIntermediateOutputPath>
</PropertyGroup>
...
</Project>
그것은 즉시 저에게 효과가 있었고 나중에 왜 그것이 필요한지, 왜 작동하는지주의 깊게 읽었을 때였습니다. 나는 예기치 않게에서 발견 파트 2 의 .NET 코어 3로 마이그레이션 샘플 WPF 응용 프로그램 에서 의 .NET 프레임 워크 프로젝트는 여전히 빌드 확인 만들기 섹션을 참조하십시오. BaseOutputPath
그리고 BaseIntermediateOutputPath
그들이 어디서든 잘 설명하는 경우 MSBuild에서 변수는 확실하지, 거기에 찾을 수 있습니다.