我在几个项目中使用了System.Windows.Interactivity DLL而没有任何问题。 现在在我的最新项目中,我无法让它发挥作用。我总是收到以下错误:
名称空间“http://schemas.microsoft.com/expression/2010/interactivity”中不存在名称“交互”。
<i:Interaction.Triggers>
<EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding AddSelectLocomotifCommand}"
CommandParameter="{Binding SelectedItem, ElementName=listBoxLocs}" />
</EventTrigger>
</i:Interaction.Triggers>
名称空间:
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
Microsoft.Expression.Interactions
和System.Windows.Interactivity
都添加到项目引用中,我甚至将DLL复制到项目中的文件夹中。
知道这是怎么来的吗?我使用VS2012和.NET 4.5
答案 0 :(得分:48)
如果您在其他所有问题之前遇到此问题,请仔细检查是否同时提及Microsoft.Expression.Interactions
AND System.Windows.Interactivity
。
我只是想提醒一下,我试图像PitAttack76那样写下他的回答并且它没有为我卸载Blend。它只是卸载了一些部件,因此当我重新启动计算机并想要在Blend中打开项目时,它会在this thread中写入错误消息。我必须安装.NET framework 4.5.1
和Microsoft Build Tools 2013
才能再次开始工作。然而,它并没有以任何方式帮助我 - 我的问题是,我的参考资料中只有Microsoft.Expression.Interactions
。
答案 1 :(得分:19)
删除对Microsoft.Expression.Interactions
和System.Windows.Interactivity
的所有项目引用。
通过Nuget安装更新的Microsoft.Xaml.Behaviors.Wpf,以替换上述引用,即打开Package Manager控制台并键入:
Install-Package Microsoft.Xaml.Behaviors.Wpf
ProjectName
在Xaml文件中,将XMLns命名空间http://schemas.microsoft.com/expression/2010/interactivity
和http://schemas.microsoft.com/expression/2010/interactions
替换为http://schemas.microsoft.com/xaml/behaviors
答案 2 :(得分:8)
好的,我已经修好了。 当我安装Visual Studio 2012 Professional(带Blend)时,我可以选择安装Blend for Visual Studio。我认为这可能导致问题所以我再次打开安装程序,选择修改并取消选中Blend for Visual Studio选项。
猜猜看,它有效。没有更多的互动错误。这现在再次正常工作! 实际问题是什么,我不知道如果有人知道,请告诉我:)
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDoubleClick">
<i:InvokeCommandAction Command="{Binding AddSelectLocomotifCommand}"
CommandParameter="{Binding SelectedItem, ElementName=listBoxLocs}" />
</i:EventTrigger>
</i:Interaction.Triggers>
答案 3 :(得分:4)
我遇到了同样的问题。我做的是:
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5; j++) {
if(i==1||j==1||i==5||j==5){
System.out.print("*");
}else {
System.out.println(" ");
}
}
}
}
和
来自Visual Studio中项目的Microsoft.Expression.Interactions
,同时保留System.Windows.Interactivity
命名空间。xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
和
Microsoft.Expression.Interactions
回到Blend(在我看来是这样的
4.5)。答案 4 :(得分:1)
我删除了缺少的引用Microsoft.Expression.Interactions和System.Windows.Interactivity。然后我安装了Hansan Pringle的Nuget包Microsoft.SDK.Expression.Blend。这是安装缺少的引用。
答案 5 :(得分:1)
我还通过手动删除 2 个引用解决了这个愚蠢的问题(我没有在我的机器上也没有在构建机器上修改任何安装):
将此差异推送到构建管道:
答案 6 :(得分:0)
我遇到了这个问题,因为我引用了System.Windows.Interactivity
的4.5版本版本,但正在.Net 4中构建我的项目
答案 7 :(得分:0)
如 SQL and Java Learner 在评论中所述:
打开VS Installer并确保在安装Blend SDK时 您执行此操作后,无需任何操作即可参考4.5版本 修改配置文件或其他文件。未能拥有 安装了Blend SDK意味着您将无法从4更改为 4.5。
这对我有用。
答案 8 :(得分:0)
我想更新这个问题,因为我发现了一个非常简单的解决方案,不确定在最初提出该问题时是否给出了解决方案。 现在,您可以下载一个nuget软件包,它会自动适合您的解决方案。
该程序包称为“ Expression.Blend.Sdk”(Microsoft发行),它包含System.Windows.Interactivity版本,其中包括具有Command属性的InvokeCommandAction版本。
很容易想到应该安装“ Blend.Interactivity.Wpf”(由Microsoft),但是此nuget包包含另一个实现(我想),该实现不提供具有Command属性的InvokeCommandAction。
答案 9 :(得分:0)