Experimenté un problema similar, pero con v4.7.2
. Es decir, seguí recibiendo un mensaje de registro de compilación como este:
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.
A pesar de que se veía similar, ninguno de los pasos propuestos anteriormente funcionó para mí. Seguí viendo este mensaje después de cada compilación. Nada parecía poder ayudar.
De hecho, el problema estaba relacionado con que, debido a la migración, tuve que poner dos proyectos en una carpeta de código. Uno de ellos estaba dirigido a .Net Core , otro a .Net Framework , ambos hacían referencia a las mismas bibliotecas .Net Standard. Aparentemente, comparten la misma obj
carpeta donde los proyectos principales colocan el project.assets.json
archivo. En realidad, exactamente este archivo interfiere con el proyecto Framework impidiendo su compilación normal. Parece incluso si realizó Migrar de packages.config a PackageReference ... que se recomendó como una de las posibles soluciones.
Puede intentar solucionar el problema colocando el siguiente fragmento en su archivo de proyecto de Framework:
<Project>
...
<PropertyGroup>
<BaseOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/bin</BaseOutputPath>
<BaseIntermediateOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/obj</BaseIntermediateOutputPath>
</PropertyGroup>
...
</Project>
Inmediatamente funcionó para mí, fue solo más tarde cuando leí con atención por qué lo necesitamos y por qué funciona. Lo encontré inesperadamente en la parte 2 de Migrar una aplicación WPF de muestra a .NET Core 3 en la sección Asegurarse de que el proyecto de .NET Framework aún se compila . BaseOutputPath
y BaseIntermediateOutputPath
las variables msbuild se pueden encontrar allí, no estoy seguro de si están bien documentadas en algún lugar.