プロジェクトがありませんSystem.Windows.Interactivity
。GoogleはExpression Blendをインストールする必要があると言っていますが、他のコンピューターにはこのライブラリがあり、Expression Blendがインストールされていません。だから、取得する別の方法があるはずSystem.Windows.Interactivity
ですか?私は何をすべきか?(今私は別のコンピュータを持っていないので、このライブラリをコピーすることはできません:)
プロジェクトがありませんSystem.Windows.Interactivity
。GoogleはExpression Blendをインストールする必要があると言っていますが、他のコンピューターにはこのライブラリがあり、Expression Blendがインストールされていません。だから、取得する別の方法があるはずSystem.Windows.Interactivity
ですか?私は何をすべきか?(今私は別のコンピュータを持っていないので、このライブラリをコピーすることはできません:)
回答:
行動の公式パッケージは Microsoft.Xaml.Behaviors.Wpf
です。
これはBlend SDKに含まれていたもので、非推奨です。移行する必要がある場合の詳細については、Janの回答を
参照してください。
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
そうではありません xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
。これまでに見た他のすべての例のように。
この問題はかなり古いものですが、これは関連するニュース/最新の回答だと思います:MicrosoftのオープンソースXAML動作と、このバージョンに更新する方法をブログに投稿しました:https : //devblogs.microsoft.com/dotnet/open -sourcing-xaml-behaviors-for-wpf /
クリックを節約するには、これが移行の主な手順です。
以下と互換性のあるSystem.Windows.Interactivity.dllを含む新しいNuGetパッケージがあります。
Expression.Blend.Sdkをインストールするには、パッケージマネージャーコンソールで次のコマンドを実行します。
PM> Install-Package Expression.Blend.Sdk
System.Windows.Interactivity
ます。解決するには、上記の私の回答を参照してください。
最も簡単な方法は、NuGetから取得することです。
http://www.nuget.org/packages/System.Windows.Interactivity.WPF/
Visual Studio用ブレンドバージョン2013から始まるのVisual Studioに含まれている、あなたは、次のフォルダにDLLを見つけることができます。
C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.5\Libraries
System.Windows.Interactivity.dll
ただし、Interactive名前空間を利用する機能を追加するために既存のプロジェクトでBlend for Visual Studioを使用しない限り、自分自身への参照を追加する必要があります。その場合、Blendは参照を自動的に追加します。
場合によっては、新しいライブラリを追加すると、での衝突バージョンが導入されSystem.Windows.Interactivity.dll
ます。
たとえば、NuGetパッケージにMVVM light
はv4.2 ofが必要ですSystem.Windows.Interactivity.dll
が、NuGetパッケージにRx-XAML
はv4.5 ofが必要な場合がありSystem.Windows.Interactivity.dll
ます。これによりプロジェクトが機能しなくなります。どのバージョンSystem.Windows.Interactivity.dll
を含めても、ライブラリの1つがコンパイルを拒否するためです。
修正するには、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
。
代替ソリューションは、することです変更 Visual Studioインストーラーで、現在のVisual Studioのインストール
Win+をR %ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vs_installer.exe
追加するBlend for Visual Studio SDK for .NET
「のSDK、ライブラリ、およびフレームワーク」下の個々のコンポーネントを'
このコンポーネントSystem.Windows.Interactivity
を追加すると、通常の場所に表示されますAdd Reference/Assemblies/Extensions
。
これはVS2017以前でのみ機能するようです。それ以降のバージョンについては、他の回答を参照してください。
MVVM Lightにあります。MVVMLightダウンロードページから入手してください。
Install-Package MvvmLightLibs -Version 5.3.0
MVVM Lightを使用している場合は、次の場所にあるSystem.Windows.Interactivity Version 4.0
(NuGet .dll は機能しません)を使用する必要があります。
PathToProjectFolder\Software\packages\MvvmLightLibs.5.4.1.1\lib\net45\System.Windows.Interactivity.dll
この.dllをリファレンスとして手動で追加するだけで問題ありません。