Mam plik EXE odwołujący się do biblioteki DLL - w tym przykładzie nazwę to: TestDLL.dll.
EXE jest napisane w języku C#, a biblioteka DLL jest zapisana w VB .Net.Wiązanie i przekierowanie wiązania
Utworzyłem wersję zestawu biblioteki demo - na przykład - TestDLL.dll wersja 1.0.0.0.
Chcę skompilować EXE w odniesieniu do wersji demo DLL (1.0.0.0). Następnie - chcę, aby EXE korzystał z tej samej biblioteki DLL, ale tej, którą umieściłem w GAC dowolnej wersji.
Aby to zrobić, należy ustawić "Copy Local" własność referencyjne DLL do FAŁSZ.
Moim celem jest na przykład - po kompilacji wstawię GAC TestDLL.dll z wersją montażową 2.1.6.0, a EXE odnajdzie go za pomocą powiązania przekierowania zespołu. Do tego użyłem pliku konfiguracyjnego. Kiedyś ten link, aby go utworzyć:
http://msdn.microsoft.com/en-us/library/7wd6ex19(v=vs.71).aspx
Więc mój plik config wygląda o tak:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="myAssembly"
publicKeyToken="32ab4ba45e0a69a1"
culture="en-us" />
<!-- Assembly versions can be redirected in application, publisher policy, or machine configuration files. -->
<bindingRedirect oldVersion="1.0.0.0"
newVersion="2.1.6.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Problem polega na tym, że po zrobieniu tego wszystkiego, ja uruchomić EXE i podczas dostępu do biblioteki dll, Wystąpił słynny błąd: System.IO.FileNotFoundException: Nie można załadować pliku lub zespołu 'TestDLL, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 9d8162944bd6fdc7' lub jednej z jego zależności. System nie może odnaleźć określonego pliku. File name: 'TestDLL, Version = 1.0.0.0, Culture = neutral, TokenKluczaPublicznego = 9d8162944bd6fdc7'
znaczenie, EXE nie może znaleźć oryginalne DLL I odwołuje się. Wiem, że mogę po prostu "odwołać się" do GAC lub użyć odbicia, ale nie chcę - ponieważ ten EXE ma działać tylko w ten sposób.
Czy ktoś wie, na czym polega problem i jak go naprawić?
Dzięki
Czy ustawiono właściwość "Specific Version" odwołania na wartość false? –
Czy możesz opublikować plik .config? – Xharze
Oczywiście ustawiłem także właściwość "Specific Version" odwołania na wartość false. –