2011-08-24 28 views
12

Chuyển từ debug để giải phóng xây dựng làm cho thiết bị Visa ngừng làm việc và cảnh báo khó hiểu như sau:Làm thế nào để remap phiên bản lắp ráp

Target ResolveAssemblyReferences:

Cân nhắc app.config Remapping của assembly "Ivi. Visa.Interop, Văn hóa = trung lập, PublicKeyToken = a128c98f1d7717c1 "từ Phiên bản " 3.0.0.0 "[] thành Phiên bản" 3.2.0.0 "[dll \ Ivi.Visa.Interop.dll] để giải quyết xung đột và loại bỏ cảnh báo . C: \ Windows \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.Common.targets: cảnh báo MSB3247: Tìm thấy xung đột giữa các phiên bản khác nhau của cùng một hội đồng phụ thuộc.

Thuộc tính Ivi.Visa.Interop tham chiếu trong dự án VS2008 cho biết rằng dll là Phiên bản 3.2.0.0. Thủ tục để remap phiên bản lắp ráp như đề xuất của cảnh báo là gì?

+0

[Chuyển hướng phiên bản hội trên MSDN] (http://msdn.microsoft.com/en-us/library/7wd6ex19%28v=VS.100%29.aspx) (.NET 4.0) – Rune

Trả lời

1

tình hình tôi đã có, đã có:

{Final Class Library}<-{Dependent Class Library}<-{Referenced DLL}

các {Referenced DLL} có nhiều GAC PublicKeyToken phù hợp.

Vì vậy, việc biên soạn {Final Class Library} đã bỏ qua phiên bản được tham chiếu trong {Dependent Class Library} và sử dụng giá trị Version= cao nhất. Điều này có đầu ra với No way to resolve conflict betweenChoosing ... arbitrarily v.v.

Thay vì ràng buộc lắp ráp, tôi vừa thêm một tham chiếu trong {Final Class Library} vào {Referenced DLL}. Tôi hạnh phúc hơn với tùy chọn này, nó có vẻ đơn giản hơn.

1

Cảnh báo "Đã tìm thấy xung đột giữa các phiên bản khác nhau của cùng một hội đồng phụ thuộc." ngụ ý rằng bạn có nhiều assembly trong project của bạn tham chiếu đến các interop COM Interop khác nhau - tôi khuyên bạn nên chọn một (giả sử không có assembly interop chính được cung cấp bởi nhà cung cấp thư viện) và thay đổi tất cả các tham chiếu đến tham chiếu thư viện COM khắp nơi)

Các vấn đề liên quan