【发布时间】:2011-02-24 23:08:56
【问题描述】:
我刚刚安装了 Visual Studio 2010 并转换了我的一个 Visual Studio 2008 WPF 项目以进行测试。虽然项目正确构建和运行,但 VS 设计器无法处理我给出的错误的自定义命名空间映射:
必须为不属于项目的 XAML 文件指定程序集。将此 XAML 文件添加到项目后重新打开它,关闭此文件并使用与之关联的项目重新打开它,或修改 clr-namespace 以包含程序集的名称。
有问题的命名空间是项目的一部分。 Visual Studio 2008 对 XAML 没有任何问题。所以我创建了一个名为Test1 的新空白WPF 项目,命名空间为Test1。然后我编辑了生成的 MainWindow.xaml 来为local 添加一个映射:
<Window x:Class="Test1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Test1"
Title="MainWindow" Height="350" Width="525">
<Grid />
</Window>
这给出了同样的错误。而且,令人惊讶的是,谷歌没有报告该错误的结果!我尝试了一些变体,例如附加 ;assembly= 或 ;assembly=Test1,但这并没有帮助。
谁能发现我做错了什么?如果没有,我将非常感谢有关为什么这可能会失败的建议。
编辑: 根据 cmets,事实证明,这只发生在从网络共享打开项目时。如果在本地驱动器上打开项目,则不会发生这种情况。但是,我希望能够在网络共享上打开它,所以我将保留这个问题。
【问题讨论】:
-
无论如何,我无法重现此问题。听起来问题不在于您的 xmlns,而是出于某种原因 VS 认为您的 .xaml 不是项目的一部分。
-
感谢您尝试复制 JustABill。在您的测试和 Google 上没有该错误之间,很明显 VS2010 可能以某种方式损坏或该开发系统特有的其他问题。
-
我在 Visual Studio 2010 上成功修复,但没有解决问题。
-
问题不在于安装 Visual Studio 2010。我只是使用本地驱动器路径 (D:\...) 而不是 UNC 路径 (\\SERVER\D \...),它工作正常。此外,我在使用 UNC 路径时收到
You should only open projects from a trustworthy source. The project file 'project' may have come from a location that isn’t fully trusted.警告。我已经确认我是所有者并且我拥有所有必要的权限。这是在本地创建的,因此我无法根据有关该警告的各种博客“取消阻止”它。我会继续调查。 -
原来这个问题和“可信来源”问题无关。我设法通过将 CasPol.exe 权限重新应用到我的 UNC 路径来解决这个问题(显然安装 VS2010 要么重置它们,要么我需要使用新的 .NET 4.0 CasPol.exe 重新应用它们,我也这样做了。然后警告消失了,但问题没有。除非我使用本地驱动器路径,否则它拒绝工作。
标签: wpf visual-studio-2010 namespaces