Although this issue is quite old, i think this is relevant news / the most recent answer: Microsoft open-sourced XAML Behaviours and posted a blog post how to update to this version: https://devblogs.microsoft.com/dotnet/open-sourcing-xaml-behaviors-for-wpf/
To save you a click, this is the main steps to migrate:
The official package for behaviors is Microsoft.Xaml.Behaviors.Wpf
.
It used to be in the Blend SDK (deprecated).
See Jan's answer for more details if you need to migrate.
There is a new NuGet package that contains the System.Windows.Interactivity.dll that is compatible with:
To install Expression.Blend.Sdk, run the following command in the Package Manager Console
PM> Install-Package Expression.Blend.Sdk
http://www.nuget.org/packages/Expression.Blend.Sdk/
The easiest way might be to get it from NuGet:
http://www.nuget.org/packages/System.Windows.Interactivity.WPF/
With Blend for Visual Studio, which is included in Visual Studio starting with version 2013, you can find the DLL in the following folder:
C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.5\Libraries
You will have to add the reference to the System.Windows.Interactivity.dll
yourself though, unless you use Blend for Visual Studio with an existing project to add functionality that makes use of the Interactivity namespace. In that case, Blend will add the reference automatically.
Sometimes, when you add a new library, in introduces a clashing version of System.Windows.Interactivity.dll
.
For example, the NuGet package MVVM light
might require v4.2 of System.Windows.Interactivity.dll
, but the NuGet package Rx-XAML
might require v4.5 of System.Windows.Interactivity.dll
. This will prevent the the project from working, because no matter which version of System.Windows.Interactivity.dll
you include, one of the libraries will refuse to compile.
To fix, add an Assembly Binding Redirect by editing your app.config
to look something like this:
<?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>
</configuration>
Don't worry about changing the PublicKeyToken
, that's constant across all versions, as it depends on the name of the .dll, not the version.
Ensure that you match the newVersion
in your appConfig
to the actual version that you end up pointing at:
Alternative solution is to modify your current Visual Studio installation in the Visual Studio Installer
Win+R %ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vs_installer.exe
adding the Blend for Visual Studio SDK for .NET
'Individual component' under 'SDKs, libraries, and frameworks':
after adding this component System.Windows.Interactivity
should appear in its regular location Add Reference/Assemblies/Extensions
.
It appears this would only work for VS2017 or earlier. For later versions, please refer to other answers.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With