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

313
Views
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>
over 4 years ago · Santiago Trujillo
2 answers
Answer question

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.

over 4 years ago · Santiago Trujillo Report

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í

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!