Comment puis-je indiquer que plusieurs versions d'un même dépendante de l'assemblée sont d'accord?

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

  •  09-06-2019
  •  | 
  •  

Question

Les assemblages A et B sont des déployée en privé et nommé fortement.Assemblée contient des références à l'Assemblée B.Il existe deux versions de Montage B:B1 et B2.Je veux être en mesure d'indiquer à l'Assemblée qu'il peut se lier soit B1 ou B2 -- idéalement, en incorporant cette information dans l'assemblée elle-même.Quelles sont mes options?

Je suis un peu familiarisé avec la gestion des versions de la politique et de la façon dont il s'applique à la GAC, mais je ne veux pas être dépendant de ces ensembles dans le GAC.

Était-ce utile?

La solution

Il existe plusieurs endroits que vous pouvez l'indiquer à l' .Net Framework qu'une version spécifique d'un typage fort de la bibliothèque doit être préférée à l'autre.Ce sont:

  • L'éditeur de Stratégie de fichier
  • de la machine.fichier de configuration
  • app.fichier de configuration

Toutes ces méthodes utilisent la "<bindingRedirect>" élément qui peut demander à l' .Net Framework pour lier une version ou une gamme de versions d'une assemblée à une version spécifique.

Voici un court exemple de la balise à utiliser pour lier toutes les versions d'une assemblée jusqu'à la version 2.0 à la version 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>

Il y a beaucoup de détails, il est donc préférable si vous lisez La redirection des Versions de Montage sur MSDN le choix de la méthode est le meilleur pour votre cas.

Autres conseils

Vous pouvez définir une politique de version de votre application.fichier de configuration.Sinon, vous pouvez charger manuellement ces assemblées avec un appel à l' Assembly.LoadFrom() lorsque cela est fait, la version de l'assembly n'est pas considérée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top