Tôi có một EXE tham chiếu đến một DLL - ví dụ này tôi sẽ gọi nó là TestDLL.dll.
EXE được viết bằng C# và DLL được viết bằng VB .Net.Lắp ráp ràng buộc và chuyển hướng
Tôi đã tạo phiên bản trình diễn bản demo của DLL - ví dụ - phiên bản TestDLL.dll 1.0.0.0.
Tôi muốn biên dịch EXE với tham chiếu đến phiên bản demo DLL (1.0.0.0). Sau đó - tôi muốn EXE sử dụng cùng một DLL, nhưng tôi sẽ đưa nó vào GAC, của bất kỳ phiên bản nào.
Để làm điều đó, tôi đặt "Sao chép địa phương" tài sản của tài liệu tham khảo của DLL để FALSE.
Mục tiêu của tôi là ví dụ - sau khi biên dịch, tôi sẽ đưa vào GAC TestDLL.dll với phiên bản lắp ráp 2.1.6.0 và EXE sẽ tìm thấy nó bằng cách sử dụng liên kết chuyển hướng assembly. Đối với điều đó, tôi đã sử dụng một tập tin cấu hình. Tôi đã sử dụng liên kết này để tạo ra nó:
http://msdn.microsoft.com/en-us/library/7wd6ex19(v=vs.71).aspx
Vì vậy, tập tin cấu hình của tôi trông về như thế này:
<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>
Vấn đề là sau khi làm tất cả những gì, tôi chạy EXE và khi truy cập vào dll, Tôi nhận được lỗi nổi tiếng: System.IO.FileNotFoundException: Không thể tải tệp hoặc lắp ráp 'TestDLL, Phiên bản = 1.0.0.0, Văn hóa = trung lập, PublicKeyToken = 9d8162944bd6fdc7' hoặc một trong các phụ thuộc của nó. Hệ thống không thể tìm thấy các tập tin được chỉ định. File name: 'TestDLL, Version = 1.0.0.0, Culture = trung tính, PublicKeyToken = 9d8162944bd6fdc7'
Ý nghĩa, EXE có thể không tìm thấy gốc DLL Tôi tham chiếu đến. Tôi biết rằng tôi chỉ có thể "tham chiếu" GAC hoặc sử dụng sự phản chiếu, nhưng tôi không muốn - vì EXE này được cho là chỉ hoạt động theo cách này.
Có ai biết sự cố và cách khắc phục sự cố không?
Cảm ơn
Bạn đã đặt thuộc tính "Phiên bản cụ thể" của tham chiếu thành false? –
Bạn có thể đăng tệp .config không? – Xharze
Chắc chắn, tôi cũng đặt thuộc tính "Phiên bản cụ thể" của tham chiếu thành sai. –