Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

2.6K
Vistas
Debe agregar una referencia al ensamblado 'netstandard, Version=2.0.0.0

El proyecto es una aplicación web ASP.NET MVC dirigida a .NET Framework 4.6.1.

De repente (se actualizaron algunos paquetes de NuGet) comencé a recibir el siguiente error durante el tiempo de ejecución:

CS0012: el tipo 'System.Object' está definido en un ensamblado al que no se hace referencia. Debe agregar una referencia al ensamblado 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.

En mi vista principal Index.cshtml , en una línea donde hago uso de @Html.ActionLink

Tengo .NET Core SDK 2.0 y .NET Framework 4.7.1 instalados en mi máquina, pero no quiero incluir una referencia a ellos. Esta es solo una aplicación web de .NET Framework, está alojada en Windows IIS donde el marco instalado es 4.6.1, no hay NET Core instalado en el servidor.

Entonces, ¿por qué pide agregar una referencia a netstandard ? ¿Cómo puedo solucionarlo sin hacer referencia netstandard sino al Windows .NET Framework 4.6.1 completo?

Revisé una confirmación anterior que funcionó bien y todavía recibo este error. Por lo tanto, no está relacionado con la actualización de los paquetes NuGet. Parece ser algo en mi máquina de desarrollo local.

Si publica la aplicación en un directorio y la ejecuta con IIS, funciona.

Enlace a .csproj esencia

paquetes.config

 <?xml version="1.0" encoding="utf-8"?> <packages> <package id="Antlr" version="3.5.0.2" targetFramework="net46" /> <package id="BundleTransformer.Core" version="1.9.69" targetFramework="net46" /> <package id="BundleTransformer.Handlebars" version="1.9.73" targetFramework="net46" /> <package id="BundleTransformer.Less" version="1.9.69" targetFramework="net46" /> <package id="BundleTransformer.Yui" version="1.9.52" targetFramework="net46" /> <package id="Dapper" version="1.42" targetFramework="net46" /> <package id="EcmaScript.Net" version="1.0.1.0" targetFramework="net46" /> <package id="EntityFramework" version="6.0.0" targetFramework="net46" /> <package id="Glimpse" version="1.8.6" targetFramework="net46" /> <package id="Glimpse.AspNet" version="1.9.2" targetFramework="net46" /> <package id="Glimpse.Mvc5" version="1.5.3" targetFramework="net46" /> <package id="JavaScriptEngineSwitcher.Core" version="1.2.4" targetFramework="net46" /> <package id="JavaScriptEngineSwitcher.V8" version="1.3.0" targetFramework="net46" /> <package id="jQuery" version="2.1.3" targetFramework="net46" /> <package id="jQuery.Validation" version="1.13.1" targetFramework="net46" /> <package id="LowercaseDashedRoute" version="1.0.14" targetFramework="net46" /> <package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net46" /> <package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net46" /> <package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net46" /> <package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net46" /> <package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net46" /> <package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net46" /> <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net46" /> <package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net46" /> <package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.3" targetFramework="net46" /> <package id="Microsoft.Owin" version="3.0.1" targetFramework="net46" /> <package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net46" /> <package id="Microsoft.SqlServer.Compact" version="4.0.8876.1" targetFramework="net46" /> <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net46" /> <package id="Moment.js" version="2.10.2" targetFramework="net46" /> <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net46" /> <package id="NWebsec" version="5.1.1" targetFramework="net46" /> <package id="NWebsec.Core" version="2.1.0" targetFramework="net46" /> <package id="NWebsec.Mvc" version="5.1.1" targetFramework="net46" /> <package id="Owin" version="1.0" targetFramework="net46" /> <package id="Respond" version="1.4.2" targetFramework="net46" /> <package id="Sendgrid" version="6.3.0" targetFramework="net46" /> <package id="SendGrid.SmtpApi" version="1.3.1" targetFramework="net46" /> <package id="Serilog" version="2.6.0" targetFramework="net46" /> <package id="Serilog.Enrichers.Environment" version="2.1.2" targetFramework="net46" /> <package id="Serilog.Sinks.File" version="3.2.0" targetFramework="net46" /> <package id="Serilog.Sinks.RollingFile" version="3.3.0" targetFramework="net46" /> <package id="Serilog.Sinks.Sentry" version="2.1.4" targetFramework="net46" /> <package id="SerilogWeb.Classic" version="2.1.17" targetFramework="net46" /> <package id="SharpRaven" version="2.2.0" targetFramework="net46" /> <package id="System.Data.SQLite" version="1.0.108.0" targetFramework="net46" /> <package id="System.Data.SQLite.Core" version="1.0.108.0" targetFramework="net46" /> <package id="System.Data.SQLite.EF6" version="1.0.108.0" targetFramework="net46" /> <package id="System.Data.SQLite.Linq" version="1.0.108.0" targetFramework="net46" /> <package id="Twitter.Bootstrap.Less" version="3.3.4" targetFramework="net46" /> <package id="WebActivatorEx" version="2.0.6" targetFramework="net46" /> <package id="WebGrease" version="1.6.0" targetFramework="net46" /> <package id="YUICompressor.NET" version="2.7.0.0" targetFramework="net46" /> </packages>

Al publicar la aplicación usando VS2017 en el sistema de archivos, aparece la siguiente advertencia en el resultado:

El siguiente ensamblado tiene dependencias en una versión de .NET Framework que es superior al destino y es posible que no se cargue correctamente durante el tiempo de ejecución y provoque un error: netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51. Las dependencias son: System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089. Debe asegurarse de que el ensamblaje dependiente sea correcto para el marco de destino o asegurarse de que el marco de destino al que se dirige sea el del ensamblaje dependiente.

Pero no puedo encontrar nada en System.Transactions . ¿Cómo puedo buscar lo que hace referencia?

over 4 years ago · Santiago Trujillo
21 Respuestas
Responde la pregunta

0

Estaba enfrentando este problema al intentar agregar una dependencia de .NETStandard a una biblioteca .NET4.6.1 y compilarla en Linux con Mono 4.6.2 (la versión que viene con Ubuntu 16.04).

Finalmente lo resolví hoy; la solución requiere hacer ambas cosas:

  1. Cambie <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> a <TargetFrameworkVersion>v4.7.1</TargetFrameworkVersion> en el archivo .csproj.
  2. Actualice su mono a una versión más nueva. Creo que 5.x debería funcionar, pero para estar seguro, puede instalar Ubuntu 20.04 (que en el momento de escribir este artículo solo está en versión preliminar), que incluye Mono 6.8.0.105.
over 4 years ago · Santiago Trujillo Denunciar

0

Puede agregar a su web.config en su proyecto.

No funcionaría cuando lo agregue a proyectos web.config porque funciona con MVC.

over 4 years ago · Santiago Trujillo Denunciar

0

Aquellos que no tienen el archivo web.config. Tipo de salida que no sea aplicación web. actualice el archivo del proyecto (.csproj) con el siguiente código.

Puede deberse a que se agregó o eliminó .netframework de manera incorrecta o puede que se rompa de manera inesperada.

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

Tipo de salida

  • Aplicación de consola
  • Biblioteca de clases
over 4 years ago · Santiago Trujillo Denunciar

0

Después de actualizar del marco 4.6.1 a 4.7.2, comenzamos a recibir este error:

"El tipo 'System.Object' está definido en un ensamblado al que no se hace referencia. Debe agregar una referencia al ensamblado 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'". y, en última instancia, la solución fue agregar la referencia de ensamblaje "netstandard" mencionada anteriormente:

 <compilation debug="true" targetFramework="4.7.1" > <assemblies> <add assembly="netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51"/> </assemblies> </compilation>
over 4 years ago · Santiago Trujillo Denunciar

0

La solución de Quango está funcionando, pero prefiero resolverla agregando este código en mi Web.config como nuevos proyectos:

 <system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=3.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701"/> <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=3.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/> </compilers> </system.codedom>
over 4 years ago · Santiago Trujillo Denunciar

0

Aquí es donde existe netstandard.dll: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades\netstandard.dll Agregue referencia a su proyecto a través de esto.

over 4 years ago · Santiago Trujillo Denunciar

0

En mi caso, actualicé mi VS 2019 a la última versión a partir del 21/05, pero sigo teniendo el mismo problema.

lo resolvi por

  1. mirando detenidamente el mensaje de error The type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'system.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
  2. Abra el archivo .csproj y debajo de la etiqueta <ItemGroup> agregue una nueva etiqueta <Reference> como se muestra a continuación
  • <Reference Include="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  1. Siga el aviso de VS para recargar un proyecto y volver a compilar y no vi el mismo problema.
over 4 years ago · Santiago Trujillo Denunciar

0

Tengo el mismo problema con un proyecto net5.0 , que incluye una tarea de compilación escrita con netstandard2.0

 <Project> <Target Name="RestoreBuildTasks"> <MSBuild Projects="../../../BuildTasks/BuildTasks.csproj" Targets="Restore" Properties="Configuration=Release"/> </Target> <Target Name="BuildBuildTasks"> <MSBuild Projects="../../../BuildTasks/BuildTasks.csproj" Targets="Build" Properties="Configuration=Release"/> </Target> <UsingTask TaskName="Brick.Build.NugetTask" AssemblyFile="AGXBrick/BuildTasks/bin/$(Platform)/Release/netstandard2.0/BuildTasks.dll"/> <Target Name="CheckNuGetSources" BeforeTargets="Restore" DependsOnTargets="RestoreBuildTasks;BuildBuildTasks"> <NuGetTask /> </Target> </Project>

Donde BuildTasks.csproj se ve así

 <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework>

Pude resolver esto estableciendo explícitamente TargetFramework=netstandard2.0 en la tarea de MSBuild :

 <MSBuild Projects="../../../BuildTasks/BuildTasks.csproj" Targets="Restore" Properties="Configuration=Release;TargetFramework=netstandard2.0"/>
over 4 years ago · Santiago Trujillo Denunciar

0

Tengo el mismo problema, mi proyecto usa .net framework 4.6.1, y cuando uso el último MSBuild (16.10.2) para crear una solución, aparece un mensaje de error, por ejemplo, ValueType... debe hacer referencia a netstandard 2.0... .

Lo descubrí instalando el elemento SDK de .Net, cuando selecciona este elemento, el tiempo de ejecución de .NET 5.0 y el tiempo de ejecución de .NET 3.1 también se instalarán.

ingrese la descripción de la imagen aquí

Después de instalar este elemento, puedo compilar mi proyecto con el último MSBuild y ¡sin errores!

over 4 years ago · Santiago Trujillo Denunciar

0

Empezamos a recibir este error en el servidor de producción después de implementar la aplicación migrada de 4.6.1 a 4.7.2.

Nos dimos cuenta de que .NET framework 4.7.2 no estaba instalado allí. Para solucionar este problema hicimos los siguientes pasos:

  1. Instalado el .NET Framework 4.7.2 desde:

    https://support.microsoft.com/en-us/help/4054530/microsoft-net-framework-4-7-2-offline-installer-for-windows

  2. Reinicié la máquina

  3. Confirmó la versión de .NET Framework con la ayuda de ¿Cómo encuentro la versión de .NET?

Ejecutar la aplicación nuevamente con la versión .Net Framework 4.7.2 instalada en la máquina solucionó el problema.

over 4 years ago · Santiago Trujillo Denunciar

0

Tuve que hacer una combinación de las respuestas de otras personas en este hilo.

  1. Instale NetStandard.Library a través de NuGet
  2. Editando manualmente el archivo .csproj y agregando la referencia. <Reference Include="netstandard" />
  3. Expandiendo proyecto -> Referencias en VS Solution Explorer, haciendo clic derecho en 'netstandard' y mostrando la página de propiedades y configurando "Copiar local" en verdadero.
over 4 years ago · Santiago Trujillo Denunciar

0

ingrese la descripción de la imagen aquí

Establezca Copy Enbale en verdadero en las propiedades de netstandard.dll.

Abra el Explorador de soluciones y haga clic derecho en netstandard.dll. Establezca Copiar local en verdadero.

over 4 years ago · Santiago Trujillo Denunciar

0

Estoy enfrentando el mismo problema que hago después de que la aplicación Configurar ahora funcione bien

1-

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

2- Agregar referencia

 **C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\Extensions\Microsoft\ADL Tools\2.4.0000.0\ASALocalRun\netstandard.dll**

3-

Copy Above Path Dll to Application Bin Folder on web server

over 4 years ago · Santiago Trujillo Denunciar

0

Experimenté esto al actualizar .NET Core 1.1 a 2.1.

Seguí las instrucciones descritas aquí .

Intente eliminar la <RuntimeFrameworkVersion>1.1.1</RuntimeFrameworkVersion> o <NetStandardImplicitPackageVersion> en .csproj.

over 4 years ago · Santiago Trujillo Denunciar

0

Podría tener que ver con uno de estos:

  1. Instale un SDK más nuevo.
  2. En .csproj verifique la Referencia Incluir="netstandard"
  3. Verifique las versiones de ensamblado en las etiquetas de compilación en Views\Web.config y Web.config.
over 4 years ago · Santiago Trujillo Denunciar

0

Me he encontrado con esto antes y probar varias cosas me lo ha solucionado:

  • Eliminar una carpeta bin si existe
  • Eliminar la carpeta oculta .vs
  • Asegúrese de que el paquete de orientación 4.6.1 esté instalado
  • Último esfuerzo: agregue una referencia a System.Runtime (haga clic con el botón derecho en el proyecto -> agregar -> referencia -> marque la casilla junto a System.Runtime), aunque creo que siempre me he dado cuenta de que uno de los anteriores lo ha resuelto. de hacer esto.

Además, si se trata de una aplicación .net core que se ejecuta en el marco completo, descubrí que debe incluir un archivo global.json en la raíz de su proyecto y apuntarlo al SDK que desea usar para ese proyecto:

 { "sdk": { "version": "1.0.0-preview2-003121" } }
over 4 years ago · Santiago Trujillo Denunciar

0

Creo que la solución podría ser este problema en GitHub :

Intente agregar una referencia de netstandard en web.config de esta manera:"

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

Me doy cuenta de que está usando 4.6.1, pero la elección de .NET 4.7.1 es importante ya que las versiones anteriores de Framework no son totalmente compatibles con .NET Standard 2.0.

Sé esto por experiencia dolorosa, cuando introduje las bibliotecas .NET Standard, tuve muchos problemas con los paquetes NUGET y la ruptura de referencias. El otro cambio que debe tener en cuenta es la actualización a PackageReferences en lugar de los archivos package.config .

Consulte esta guía y es posible que también desee una herramienta que le ayude con la actualización . Sin embargo, requiere una versión posterior de VS 15.7.

over 4 years ago · Santiago Trujillo Denunciar

0

Este problema se basa en su versión instalada de Visual Studio y Windows, puede seguir los siguientes pasos:-

  1. Ir a la ventana de comandos
  2. rebajó su PCL con el siguiente comando

     Install-Package Xamarin.Forms -Version 2.5.1.527436
  3. Reconstruya su proyecto.
  4. Ahora podrá ver la salida requerida
over 4 years ago · Santiago Trujillo Denunciar

0

Aunque este es un hilo antiguo, tuve el mismo problema hoy, la semana pasada actualicé algunos paquetes de NuGet y aunque el sitio web de MVC funcionó bien en mi máquina de desarrollo cuando publiqué en el servidor de prueba, falló.

Leí numerosas publicaciones pero ninguna funcionó. Finalmente comparé las DLL en mi contenedor local con las del servidor de prueba y descubrí que netstandard.dll no se cargó, una vez que se cargó, el sitio web funcionó bien, no estoy seguro de por qué la implementación web de VS2017 no publicó la DLL.

Solo algo a tener en cuenta en caso de que nada de lo anterior funcione para usted.

over 4 years ago · Santiago Trujillo Denunciar

0

Eliminar las carpetas Bin y Obj funcionó para mí.

over 4 years ago · Santiago Trujillo Denunciar

0

La edición manual del archivo .csproj y la adición de la referencia a continuación funcionó para mí.

 <Reference Include="netstandard" />

Gracias a Fahad Alshaya que lo sugirió aquí .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda