¿Cómo puedo indicar que están bien varias versiones de un ensamblado dependiente?

StackOverflow https://stackoverflow.com/questions/54546

  •  09-06-2019
  •  | 
  •  

Pregunta

Los ensamblados A y B se implementan de forma privada y tienen un nombre seguro.El ensamblaje A contiene referencias al ensamblaje B.Hay dos versiones del Ensamblaje B:B1 y B2.Quiero poder indicar para el ensamblaje A que puede vincularse a B1 o B2, idealmente incorporando esta información en el ensamblaje mismo.¿Cuáles son mis opciones?

Estoy algo familiarizado con la política de versiones y la forma en que se aplica al GAC, pero no quiero depender de que estas asambleas estén en el GAC.

¿Fue útil?

Solución

Hay varios lugares donde puede indicarle a .Net Framework que se debe preferir una versión específica de una biblioteca fuertemente tipada a otra.Estos son:

  • Archivo de política del editor
  • archivo machine.config
  • archivo app.config

Todos estos métodos utilizan el "<bindingRedirect>" elemento que puede indicarle a .Net Framework que vincule una versión o rango de versiones de un ensamblado a una versión específica.

A continuación se muestra un breve ejemplo de la etiqueta en uso para vincular todas las versiones de un ensamblado hasta la versión 2.0 a la versión 2.5:

<assemblyBinding>
    <dependantAssembly>
        <assemblyIdentity name="foo" publicKeyToken="00000000000" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0 - 2.0.0.0" newVersion="2.5.0.0" />
    </dependantAssembly>
</assemblyBinding>

Hay muchos detalles, por lo que es mejor que leas sobre Redirigir versiones de ensamblado en MSDN para decidir qué método es mejor para su caso.

Otros consejos

Puede configurar la política de versión en su archivo app.config.Alternativamente, puede cargar manualmente estos ensamblajes con una llamada a Assembly.LoadFrom() cuando se hace esto, no se considera la versión ensamblada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top