Đôi khi, khi bạn thêm một thư viện mới, trong giới thiệu một phiên bản xung đột của System.Windows.Interactivity.dll.
Ví dụ: gói NuGet MVVM lightcó thể yêu cầu v4.2 trong System.Windows.Interactivity.dll, nhưng gói NuGet Rx-XAMLcó thể yêu cầu v4.5 của System.Windows.Interactivity.dll. Điều này sẽ ngăn dự án hoạt động, bởi vì bất kể System.Windows.Interactivity.dllbạn đưa vào phiên bản nào, một trong các thư viện sẽ từ chối biên dịch.
Để khắc phục, hãy thêm Chuyển hướng ràng buộc lắp ráp bằng cách chỉnh sửa của bạn app.configđể trông giống như sau:
<?xml version="1.0"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Windows.Interactivity"
publicKeyToken="31bf3856ad364e35"
culture="neutral"/>
<bindingRedirect oldVersion="4.0.0.0"
newVersion="4.5.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup>
<appSettings>
<add key="TestKey" value="true"/>
</appSettings>
Đừng lo lắng về việc thay đổi PublicKeyToken, không đổi trên tất cả các phiên bản, vì nó phụ thuộc vào tên của .dll, không phải phiên bản.
Đảm bảo rằng bạn khớp nội dung newVersioncủa mình appConfigvới phiên bản thực tế mà bạn cuối cùng chỉ vào:
