Иногда, когда вы добавляете новую библиотеку, в ней вводится конфликтующая версия System.Windows.Interactivity.dll
.
Например, для пакета NuGet MVVM light
может потребоваться v4.2 из System.Windows.Interactivity.dll
, но NuGetДля пакета Rx-XAML
может потребоваться версия 4.5 System.Windows.Interactivity.dll
.Это предотвратит работу проекта, потому что независимо от того, какую версию System.Windows.Interactivity.dll
вы включите, одна из библиотек откажется компилировать.
Чтобы исправить, добавьте перенаправление привязки сборки, отредактировав ваш 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
соответствует фактической версии, на которую вы в итоге указали: