Upgrade referencyjnej biblioteki dll w projekcie C# bez rekompilacji projektu

Muszę wziąć wbudowaną wersję aplikacji C# I zmienić jeden z DLL odniesienia. co jest najlepszym sposobem, aby to zrobić, mam określoną wersję wyłączoną na dll odniesienia, ale jak tylko przetestować zastąpienie dll z nowszą wersją, dostaję "Could not load file or assembly XXXXX, Version=XXXXX. Czy istnieje sposób, aby zatrzymać loader z dbania o wersji dll więc dll będzie po prostu spróbować załadować?

Author: Jeff Sternal, 2009-09-22

1 answers

Tak, możesz to zrobić - zobacz artykuł MSDN przekierowywanie wersji montażowych .

Powinieneś przeczytać cały dokument, ale zasadniczo dotyczy to albo wydawcy assembly tworzącego 'plik polityki wydawcy', albo konsumenta dodającego {[1] } do pliku app.config, Jak to (skopiowane bezpośrednio z Artykułu):

<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>

Kilka uwag:

  • Jeśli nie określiłeś wprost twoja kultura (jak wielu nie), będzie być "neutralnym", a nie "en-us".

  • Jeśli jeszcze tego nie wiesz, możesz zdobądź Token klucza publicznego zgromadzenia korzystanie z silnej nazwy narzędzia, jak to: sn -t [AssemblyPath]

 18
Author: Jeff Sternal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-23 12:52:50