2012-04-25 25 views
9

Tôi có thông tin sau trong số app.config.là các ràng buộc lắp ráp bị bỏ qua cho PublicKeyToken = null?

<configuration> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <probing privatePath="bin2" /> 
    <dependentAssembly> 
     <assemblyIdentity name="Foo" culture="neutral" publicKeyToken="null"> 
     <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.4497.27619" /> 
     </assemblyIdentity> 
    </dependentAssembly> 
    </assemblyBinding> 
    ... 
<configuration> 

Ghi nhật ký kết hợp cho tôi biết rằng nó không tìm kiếm trong số bin2 để lắp ráp của tôi.

LOG: Initial PrivatePath = NULL (và nó không bao giờ tìm kiếm trong bin/Debug/bin2/Foo)

Đây có phải là một vấn đề với không có một publicKeyToken?

Trả lời

10

Có, chúng bị bỏ qua đối với các cụm không được đặt tên mạnh (có một publicKeyToken) vì CLR bỏ qua số phiên bản cho các hội đồng này.

Xem this MSDN page để biết thêm thông tin.

+2

Lưu ý cụ thể trên trang cho biết: "Bạn không thể chuyển hướng các phiên bản cho các hội đồng không được đặt tên mạnh. Thời gian chạy ngôn ngữ chung bỏ qua phiên bản cho các hội đồng không được đặt tên mạnh". – JJS

+0

@JJS: Đối với .NET 4.5, lưu ý đó không tồn tại. Nó không phải là rõ ràng, mặc dù, cho dù hành vi đã thay đổi. –

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