Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

2.6K
Views
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 answers
Answer question

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

0

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

over 4 years ago · Santiago Trujillo Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!