我的项目不见了System.Windows.Interactivity
。Google表示我必须安装Expression Blend,但是在另一台计算机上,我有此库,没有安装Expression Blend。那么应该有另一种获取方式System.Windows.Interactivity
吗?我该怎么办?(现在我没有另一台计算机,所以我不能只复制此库:)
我的项目不见了System.Windows.Interactivity
。Google表示我必须安装Expression Blend,但是在另一台计算机上,我有此库,没有安装Expression Blend。那么应该有另一种获取方式System.Windows.Interactivity
吗?我该怎么办?(现在我没有另一台计算机,所以我不能只复制此库:)
Answers:
官方的行为包是Microsoft.Xaml.Behaviors.Wpf
。
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为WPF采购Xaml行为/
为了节省您的点击时间,这是迁移的主要步骤:
有一个新的NuGet软件包,其中包含与以下系统兼容的System.Windows.Interactivity.dll:
要安装Expression.Blend.Sdk,请在程序包管理器控制台中运行以下命令
PM> Install-Package Expression.Blend.Sdk
System.Windows.Interactivity
。要解决,请参阅上面的答案。
最简单的方法可能是从NuGet获取它:
http://www.nuget.org/packages/System.Windows.Interactivity.WPF/
使用Blend for Visual Studio(从2013版开始包含在Visual Studio中),您可以在以下文件夹中找到DLL:
C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.5\Libraries
System.Windows.Interactivity.dll
但是,除非您将Blend for Visual Studio与现有项目一起使用,否则您将不得不添加对自己的引用,以添加利用Interactivity命名空间的功能。在这种情况下,Blend将自动添加参考。
有时,当您添加新库时,会引入冲突的版本System.Windows.Interactivity.dll
。
例如,NuGet软件包MVVM light
可能需要v4.2 版本System.Windows.Interactivity.dll
,但NuGet软件包Rx-XAML
可能需要v4.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
到你最终指向的实际版本:
另一种方法是修改当前的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中,请从MVVM Light下载页面获得。
Install-Package MvvmLightLibs -Version 5.3.0