A veces, cuando agrega una nueva biblioteca, introduce una versión conflictiva de System.Windows.Interactivity.dll
.
Por ejemplo, el paquete NuGet MVVM light
puede requerir v4.2 de System.Windows.Interactivity.dll
, pero el paquete NuGet Rx-XAML
puede requerir v4.5 de System.Windows.Interactivity.dll
. Esto evitará que el proyecto funcione, porque no importa qué versión de System.Windows.Interactivity.dll
usted incluya, una de las bibliotecas se negará a compilar.
Para solucionarlo, agregue un redireccionamiento de enlace de ensamblaje editando su app.config
para que se vea así:
<?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>
No se preocupe por cambiar PublicKeyToken
, eso es constante en todas las versiones, ya que depende del nombre del .dll, no de la versión.
Asegúrese de hacer coincidir el newVersion
en su appConfig
con la versión real a la que termina apuntando: