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

310
Vistas
Redirección de enlace de ensamblaje: ¿cómo y por qué?

Esta no es una pregunta problemática, sino una pregunta de comprensión general sobre el funcionamiento de la redirección de enlace de ensamblaje.

Consultas

  1. ¿Por qué la redirección vinculante muestra solo la versión principal y no los números de compilación y revisión menores?
  2. ¿La versión antigua y la nueva cambian solo cuando hay un cambio en la versión principal?

     <dependentAssembly> <assemblyIdentity name="FooBar" publicKeyToken="32ab4ba45e0a69a1" culture="en-us" /> <bindingRedirect oldVersion="7.0.0.0" newVersion="8.0.0.0" /> </dependentAssembly>
about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

¿Por qué son necesarios los redireccionamientos vinculantes? Suponga que tiene la aplicación A que hace referencia a la biblioteca B y también a la biblioteca C de la versión 1.1.2.5. La biblioteca B, a su vez, también hace referencia a la biblioteca C, pero de la versión 1.1.1.0. Ahora tenemos un conflicto, porque no puede cargar diferentes versiones del mismo ensamblado en tiempo de ejecución. Para resolver este conflicto, puede usar la redirección de enlace, generalmente a la nueva versión (pero también puede ser a la anterior). Para ello, agregue lo siguiente al archivo app.config de la aplicación A, en configuration > runtime > assemblyBinding (vea aquí un ejemplo de archivo de configuración completo):

 <dependentAssembly> <assemblyIdentity name="C" publicKeyToken="32ab4ba45e0a69a1" culture="en-us" /> <bindingRedirect oldVersion="1.1.1.0" newVersion="1.1.2.5" /> </dependentAssembly>

También puede especificar un rango de versiones para mapear:

 <bindingRedirect oldVersion="0.0.0.0-1.1.1.0" newVersion="1.1.2.5" />

Ahora, la biblioteca B, que se compiló con referencia a C de la versión 1.1.1.0, utilizará C de la versión 1.1.2.5 en tiempo de ejecución. Por supuesto, es mejor que se asegure de que la biblioteca C sea compatible con versiones anteriores o esto podría generar resultados inesperados.

Puede redirigir cualquier versión de las bibliotecas, no solo las principales.

about 4 years ago · Santiago Trujillo Denunciar

0

Encontramos un problema con la redirección de enlace para NewtonSoft.Json. Buscamos la versión del archivo en las propiedades del archivo win 10 "9.0.1.19813", buscamos el número y la redirección seguía fallando. Más investigación y descubrió que estábamos mirando la versión del archivo y no la versión del ensamblado. Por lo tanto, me pregunto si la gente está confundiendo la versión del archivo (que cambia con frecuencia) y la versión de ensamblaje (que no se puede ver en el Explorador de archivos de Windows 10). Para ver la versión de ensamblaje de un dll, puede ejecutarlo en PowerShell. Reemplace el nombre de dll con el que desea encontrar la versión.

 [Reflection.AssemblyName]::GetAssemblyName('C:\development\bin\Newtonsoft.Json.dll').Version

El resultado de lo anterior es.

 Major Minor Build Revision ----- ----- ----- -------- 9 0 0 0

Ver referencias:

¿Cómo puedo ver la versión de ensamblado de un ensamblado .NET en Windows Vista y posteriores (WINdows 7, 2008)?

https://support.microsoft.com/en-nz/help/556041

ingrese la descripción de la imagen aquí

about 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