No puedo ejecutar mis pruebas unitarias.
Tengo el siguiente error:
Su proyecto no hace referencia al marco ".NETFramework, Version = v4.6.2". Agregue una referencia a ".NETFramework, Version = v4.6.2" en la propiedad "TargetFrameworks" de su archivo de proyecto y luego vuelva a ejecutar NuGet restore.
En app.config
:
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/>
</startup>
En Proyecto> Propiedades> Aplicación> TargetFramework (.NET Framework 4.6.2)
¿Cómo puedo arreglarlo?
c#
unit-testing
mstest
csproj
.net-framework-version
Василь Ткачук
fuente
fuente
Respuestas:
Siga los siguientes pasos
fuente
obj/
carpetas.Experimenté un problema similar, pero con
v4.7.2
. Es decir, seguí recibiendo un mensaje de registro de compilación como este: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 elproject.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
yBaseIntermediateOutputPath
las variables msbuild se pueden encontrar allí, no estoy seguro de si están bien documentadas en algún lugar.fuente
Eso me pasó al abrir un proyecto VS2015 en VS2017. Eliminar el
project.assets.json
de laobj
carpeta funcionó.De todos modos, el Framework del mensaje faltaba en el archivo, aunque no lo agregué allí, fui a eliminarlo.
fuente
Voté a Larissa, pero pensé que podría ser útil saber cómo llegué a esto. Agregué un archivo de proyecto estándar .net a mi compilación (apuntamos a muchas plataformas) y produjo los desechos que se encuentran en la carpeta obj. Cuando apareció la compilación de cordura de Android, vomitó en la carpeta obj. Mi solución fue limpiar esa carpeta como un paso previo a la construcción. Este es un problema difícil porque funcionó bien durante años ... la aguja se encuentra con el pajar.
fuente
Para mi caso, elimine la
.pkgrefgen/
carpeta debajo de la carpeta del proyecto funciona, contiene un archivo project.assets.json que se refiere al antiguo marco .netfuente
Me encontré con lo mismo con .net 4.71. En mi caso, simplemente migré de packages.config a "referencias de paquetes" por
Migrar de packages.config a PackageReference
... y solucionó mi problema. Para mí, iba a hacer esto de todos modos, así que si ya está yendo por este camino, simplemente omitiría lo anterior y migraría a las referencias del paquete.
fuente
Estoy usando un proyecto .NET muy antiguo y funcionaba bien hasta que se detuvo de repente. La actualización de Visual Studio se solucionó para mí.
fuente