visual Mettre à niveau une DLL de référence dans un projet C#sans recompiler le projet



gestion bibliothèque c# (1)

Oui, vous pouvez le faire - consultez l'article MSDN Redirection Versions d'assemblage .

Vous devriez lire tout le document, mais cela implique essentiellement que l'éditeur de l'assembly crée un "fichier de politique d'éditeur" ou que le consommateur ajoute un bindingRedirect à un fichier app.config , comme ceci (copié directement à partir de l'article):

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <dependentAssembly>
         <assemblyIdentity name="myAssembly"
                           publicKeyToken="32ab4ba45e0a69a1"
                           culture="en-us" />
         <bindingRedirect oldVersion="1.0.0.0"
                          newVersion="2.0.0.0"/>
       </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

Quelques notes:

  • Si vous n'avez pas explicitement spécifié votre culture (comme beaucoup ne le font pas), ce sera "neutre" plutôt que "en-us".

  • Si vous ne le connaissez pas déjà, vous pouvez obtenir le jeton de clé publique de l'assembly à l'aide de l'utilitaire de nom fort, comme ceci: sn -t [AssemblyPath]

Je dois prendre une version construite d'une application C # et changer l'une des DLL de référence. Quelle est la meilleure façon de faire cela, j'ai une version spécifique désactivée sur la DLL de référence, mais dès que je testerai remplacer la DLL avec une version plus récente, je reçois le "Impossible de charger le fichier ou l'assemblage XXXXX, Version = XXXXX. il ya un moyen d'arrêter le chargeur de se soucier de la version de la DLL, de sorte que la DLL va juste essayer de charger?





assembly-resolution