Às vezes, quando você adiciona uma nova biblioteca, em introduz uma versão conflitante de System.Windows.Interactivity.dll
.
Por exemplo, o pacote NuGet MVVM light
pode exigir a v4.2 de System.Windows.Interactivity.dll
, mas o pacote NuGet Rx-XAML
pode exigir a v4.5 de System.Windows.Interactivity.dll
. Isso impedirá que o projeto funcione, porque independentemente da versão que System.Windows.Interactivity.dll
você incluir, uma das bibliotecas se recusará a compilar.
Para corrigir, adicione um Redirecionamento de vinculação de montagem editando seu app.config
para se parecer com isto:
<?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>
Não se preocupe em alterar o PublicKeyToken
, isso é constante em todas as versões, pois depende do nome do .dll, não da versão.
Certifique-se de combinar o newVersion
em seu appConfig
com a versão real para a qual você acabou apontando: