asp.net - sistema - visual studio no encuentra referencia
Error "Identidad equivalente de System.Runtime" de ASP.NET Web Forms en Windows 10 con.NET 4.0 de.NET 4.0 (0)
Tengo una aplicación Webforms VB.NET/ASP.NET que utiliza la API de Gmail. Originalmente apuntaba a 4.5.2 y todo funcionó bien. Las especificaciones cambiaron y ahora debe ejecutarse en un servidor con .NET 4.0 instalado. Cuando reorienté el proyecto comencé a recibir el siguiente error:
Se han importado varios ensamblados con identidad equivalente: ''C: / WINDOWS / Microsoft.Net / assembly / GAC_MSIL / System.Runtime / v4.0_4.0.0.0__b03f5f7f11d50a3a / System.Runtime.dll'' y ''C: / Users / User / AppData / Local / Temp / Archivos ASP.NET temporales / root / a17744b0 / bc5d4def / assembly / dl3 / 8947372f / 000e8a3c_c74bd001 / System.Runtime.dll ''. Eliminar una de las referencias duplicadas.
Después de muchas horas investigando y depurando, he reducido el problema pero no puedo resolverlo. En resumen, la API de Gmail requiere el uso de los operadores Async
y Await
que no son compatibles con 4.0. Para permitir el uso de estas características, al instalar el paquete NuGet API de Gmail, también instala los paquetes Microsoft.Bcl, Microsoft.Bcl.Build y Microsoft.Bcl.Async y una referencia de System.Runtime para el web.config:
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.6.10.0" newVersion="2.6.10.0" />
</dependentAssembly>
Creo que el GAC System.Runtime está en conflicto con el que importó el paquete Microsoft.Bcl NuGet. Comprobé el número de versión del dll instalado y coincide con la referencia en el web.config. Desafortunadamente, también parece coincidir con el que está en el GAC, lo que da como resultado el error anterior.
Cuando elimino la referencia de web.config, obtengo:
BC31091: Falló la importación del tipo ''AsyncTaskMethodBuilder (Of)'' desde el ensamblado o el módulo ''App_Code.cq-gmlla.dll''.
en el siguiente código:
Private Async Function GetService() As Task(Of GmailService)
Además, no puedo encontrar dónde se hace referencia a GAC System.runtime dll (a menos que sea <add assembly="*" />
en la raíz del framework web.config), pero cuando elimino temporalmente el archivo System.Runtime.dll del GAC No obtengo el error de identidad equivalente. Sin embargo, obtengo el siguiente error de compilación sin mensaje adicional:
El compilador falló con el código de error -532462766.
Parece que 4.0 ya no es compatible y los paquetes de destino no están disponibles para VS 2015, por lo que puede ser relevante, pero no estoy seguro.
No encontré ningún artículo específicamente sobre mi problema, en cambio, artículos similares y generales sobre montaje, NuGet y cuestiones de referencia y, por lo tanto, me abstengo de vincularlos, ya que realmente no añaden mucho a mi pregunta.
He alcanzado los límites de lo que sé sobre el GAC y las Asambleas, por lo que cualquier ayuda sería muy apreciada.