VS2012项目Xaml报告找不到命名空间错误,但项目编译正常。

5

我在VS2012中遇到了一个非常奇怪的问题。

事实是,这是另一个人创建的解决方案,而我必须在我的C#课程中使用它。我知道它可以正常运行,因为我的团队中有其他3个人,他们没有收到任何警告或类似的东西。

从我的角度来看,程序运行得很好,但是当我构建并搜索xaml文件时,错误就不断地堆积起来,关于命名空间中缺少项和其他类似的东西:

Error 1 Could not load file or assembly 'Microsoft.Practices.ServiceLocation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. C:\Users\jesperplantener\Documents\Visual Studio 2012\Projects\02350Demo.VS2012 (1)\02350Demo.VS2012\02350Demo\View\App.xaml 9 9 02350Demo

Error 2 The name "EventTrigger" does not exist in the namespace "clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity". C:\Users\jesperplantener\Documents\Visual Studio 2012\Projects\02350Demo.VS2012 (1)\02350Demo.VS2012\02350Demo\View\NodeUserControl.xaml 68 17 02350Demo

等等,我有大约29个这样的错误。

现在是有趣的部分:

我正在使用MacBook Air 2013。Windows虚拟安装在Parallels中。一开始我认为这可能是缺陷,所以我重新安装了Windows 7。但是没有解决问题。然后我将我的Parallels 8升级到9。也没有解决问题。我刚刚在Parallels 9中安装了Windows 8,问题仍然存在!!!

在我做傻事之前,请有人能帮帮我吗? :D

顺便说一下,是的,该项目已经被下载了多次,并且在我的团队成员的电脑上运行良好。


也许你的队友安装了一些你没有的库。检查并比较你的队友的 BIN 文件夹和你自己的,看看是否缺少他们有但你没有的 DLL 文件。 - Mauricio Gracia Gutierrez
我本可以指定的。我们所有人都有完全相同的项目文件。他们中的大多数只是安装了Visual Studio,因此他们得到了一个干净的安装,就像我一样。 - Jesper Plantener
TFS + VS 在不同的计算机上保留引用方面做得不太好。你有带黄色感叹号的引用吗?如果是这种情况,请先移除再重新添加引用。 - Mauricio Gracia Gutierrez
目前所有的错误都是这样的: 错误1:名称“Interaction”在命名空间“clr-namespace:System.Windows.Interactivity;assembly…”中不存在。 只涉及不同的名称和不同的命名空间。 - Jesper Plantener
如果你在安全模式下运行VS (/SafeMode命令行),错误是否仍然会出现? - FarmerBob
如果我在安全模式下打开VS,则无法打开单个xaml文件,它会出现环境错误:( - Jesper Plantener
3个回答

2
如果我没记错的话,Windows互动性可以有一个可选的混合程序集。Visual Studio 2012版本1的Blend仅适用于Win 8,并且无法做WPF应用程序。您可能没有WPF版本。您可以通过运行Blend来确定是否安装了Blend应用程序版本。如果是并且它正常工作,则Blend将正常启动;否则,它会告诉您并提供一个链接以下载WPF版本的Blend试用版。这在更新中可能已经改变了...因此,在做任何事情之前,请安装Visual Studio的第3个更新,然后尝试使用Blend。验证其是否运行,然后如果您安装了更新,请尝试重新构建。
----- 更新 ----
对于Microsoft.Practices.Services Locator,请从Codeplex(Common Service Locator library)安装。
----来自OP(Jesper)的更新---
验证所有软件包与相同版本的.NET匹配。使用Nuget安装/卸载软件包直到所有软件包都对齐。

@JesperPlantener 让我们先试着解决一件事情,然后再看更新。 - ΩmegaMan
嗨OmegaMan。刚试图更新到更新3。我昨天以为我已经更新了,但现在才意识到我没有。这导致每次构建程序时XAML编辑器都会崩溃。我正在修复VS,看看是否可以解决我的问题,等我有答案后再回来。 - Jesper Plantener
没关系,修复并没有解决问题。有时设计师可以正常工作,而有时却不能。我刚刚尝试添加了下载的Microsoft.Practices.Services Locator,但它也无法正常工作,出现了相同的问题。在 Blend 中一切似乎都很好,我可以在那里打开项目,并且可以正常显示不同的视图。 - Jesper Plantener
嘿,重要更新! :) 我刚刚和其他一些朋友交谈,他们中的一些人似乎有与我相同的问题。现在我坐在两个朋友旁边,让他们运行它。其中一个遇到了问题,另一个没有。现在这真的开始变得非常奇怪了! - Jesper Plantener
1
我解决了!卸载了mvvm light NuGet包,并重新安装它,这给了我一个适用于.net 4.5而不是4的版本。更新了xaml中的所有引用,并下载了一个新的.dll文件来支持4.5(旧的为4.0)。这似乎已经消除了所有的错误!感谢您的时间OmegaMan! - Jesper Plantener
显示剩余7条评论

0

我在Blend中遇到了类似的问题。VS 2012设计师没有问题,但是在Blend中收到了与您相同的错误,导致我无法使用Blend的设计师。

为了解决这个问题,我删除了有问题的引用,并重新添加了它;但我没有使用“添加项目引用...”,而是手动从文件对话框框中选择了DLL并使用“添加引用”。


0

刚试了一下,不行。只是说它已经是引用的一部分了。还尝试删除旧的,使用新的,但也不行。这是错误列表的截图: http://i93.photobucket.com/albums/l47/sonsora_2006/Untitled-2.png - Jesper Plantener
好的,那就试试这个 - https://dev59.com/Ymsy5IYBdhLWcg3wtwa9 - Ademar
问题在于 System.Windows.Interactivity 已经在工作并且程序编译也没有问题。只是设计师无法正常工作,因为它抱怨缺少引用。 - Jesper Plantener

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接