c# .net-standard .net-4.6.1

c# - El tipo ''Objeto'' se define en un ensamblaje al que no se hace referencia(NET Standard 2.0/.NET Framework 4.6.1)



.net-standard .net-4.6.1 (6)

Después de instalar NET Core 2.0 preview 2 y actualizar a la última versión de Visual Studio 2017 Preview (15.3), las referencias ahora se instalan automáticamente.

De acuerdo con este problema de GitHub , al tratar con un problema similar, debe agregar manualmente una referencia al paquete NETStandard.Library.NETFramework dentro de su proyecto .NET Framework por ahora * .

O instalarlo a través de la consola NuGet:

Install-Package NETStandard.Library.NETFramework -Version 2.0.0-preview1-25305-02 -Pre

Hace unos días, se lanzó NET Core / Standard 2.0 preview 2; si actualizaba, se necesita la siguiente versión:

Install-Package NETStandard.Library.NETFramework -Version 2.0.0-preview2-25405-01 -Pre

o a través de la tienda NuGet (marque Mostrar versiones preliminares ) y busque NETStandard.Library.NETFramework

Esto resolverá las referencias, los errores deberían desaparecer.

* Joperezr afirma que Microsoft planea dejar que una herramienta maneje esto más adelante.

Por ahora, debe agregar manualmente una referencia a este paquete, lo que puede ser molesto, pero en el futuro planeamos que las herramientas lo hagan por usted.

Estoy usando la vista previa de .NET Standard 2.0 , en la que se basan mis bibliotecas de clases.

Después de tener problemas con algunos paquetes de NuGet, especialmente con respecto a la extracción de archivos, decidí migrar mis proyectos de .NET Core 2.0 Console a .NET Framework 4.6.1.

Se supone que .NET Framework 4.6.1 debe implementar la especificación .NET Standard 2.0, de acuerdo con diferentes fuentes. Especialmente la dotnet / standard GitHub Repo .

Desafortunadamente, la migración a .NET Framework dio lugar a los siguientes errores en todos los proyectos de .NET Framework Console:

Error CS0012 El tipo ''Objeto'' se define en un ensamblaje al que no se hace referencia. Debe agregar una referencia al ensamblado ''netstandard, Versión = 2.0.0.0, Cultura = neutral, PublicKeyToken = cc7b13ffcd2ddd51''.

Donde Object puede ser cualquier cosa: Enum , Task , ...

¿Cómo haría referencia a las bibliotecas de clase .NET Standard 2.0 con .NET Framework (4.6.1) sin obtener tales errores?


Intente agregar una referencia de netstandard en web.config como este:

<system.web> <compilation debug="true" targetFramework="4.7.1" > <assemblies> <add assembly="netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51"/> </assemblies> </compilation> </system.web>


Por si acaso algunas personas siguen teniendo este problema como yo.

actualice su versión de Visual Studio 2017 a> 15.3 (verifique la versión en ayuda -> desde el menú superior), tuve la versión 15.2 y al ver este error, hice todo lo que encontré aquí o github pero no solucioné mi problema. Luego actualicé la versión de estudio visual y la reparé.



Tuve este problema en mi proyecto de prueba al usar TestServer para probar mis vistas MVC.

El proyecto de prueba, el proyecto web y las bibliotecas asociadas fueron todos netcoreapp2.0 .

La actualización de vs2017 a 15.5 no funcionó, y editar mi prueba .csproj con las siguientes correcciones sugeridas no funcionó:

<RestoreProjectStyle>PackageReference</RestoreProjectStyle>

<ItemGroup><Reference Include="netstandard" /></ItemGroup>

<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>

Según https://github.com/aspnet/Razor/issues/1212#issuecomment-297885722 , esto funcionó:

<Target Name="CopyDepsFiles" AfterTargets="Build" Condition="''$(TargetFramework)''!=''''"> <ItemGroup> <DepsFilePaths Include="$([System.IO.Path]::ChangeExtension(''%(_ResolvedProjectReferencePaths.FullPath)'', ''.deps.json''))" /> </ItemGroup> <Copy SourceFiles="%(DepsFilePaths.FullPath)" DestinationFolder="$(OutputPath)" Condition="Exists(''%(DepsFilePaths.FullPath)'')" /> </Target>


Tuve este problema incluso después de usar la última versión 2.0 y VS 15.3. Sin embargo, creo que mi problema era diferente. Después de actualizar de Core 1.1 a 2.0, por alguna razón, mi .web''s .csproj tenía <RuntimeFrameworkVersion>1.1.2</RuntimeFrameworkVersion> . Lo que impidió que el proyecto tuviera como objetivo la versión 2.0 correcta.

Los proyectos de mis bibliotecas de clases (.Layer) tenían <NetStandardImplicitPackageVersion>1.6.1</NetStandardImplicitPackageVersion> .

Los borré y mi proyecto finalmente comenzó a usar 2.0 y todo salió bien después.