บางครั้งเมื่อคุณเพิ่มไลบรารีใหม่ในการแนะนำเวอร์ชันการปะทะกันของSystem.Windows.Interactivity.dll.
ยกตัวอย่างเช่นแพคเกจ NuGet MVVM lightอาจต้อง v4.2 ของSystem.Windows.Interactivity.dllแต่แพคเกจ NuGet Rx-XAMLอาจต้อง v4.5 System.Windows.Interactivity.dllของ การดำเนินการนี้จะป้องกันไม่ให้โปรเจ็กต์ทำงานได้เนื่องจากไม่ว่าSystem.Windows.Interactivity.dllคุณจะรวมเวอร์ชันใดไว้ไลบรารีใดไลบรารีหนึ่งจะปฏิเสธที่จะรวบรวม
ในการแก้ไขให้เพิ่ม Assembly Binding Redirect โดยแก้ไขของคุณapp.configให้มีลักษณะดังนี้:
<?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>
ไม่ต้องกังวลกับการเปลี่ยนแปลงPublicKeyTokenค่าคงที่ในทุกเวอร์ชันเนื่องจากขึ้นอยู่กับชื่อของ. dll ไม่ใช่เวอร์ชัน
ตรวจสอบให้แน่ใจว่าคุณจับคู่newVersionในappConfigเวอร์ชันของคุณกับเวอร์ชันจริงที่คุณชี้ไปที่:
