我一直在研究WPF应用程序。由于我在Expression Blend 4中设计UI并在Visual Studio 2010中处理代码隐藏部分,因此我不断地从一个工具切换到另一个工具。
我向现有网格添加了一些图像控件,并为其分配了一些图像。在Blend中,我构建了项目并运行它。工作得很好。当我切换到Visual Studio时,我收到此错误:
未定义的CLR命名空间。该 'clr-namespace'URI是指a 命名空间'MS.Internal.Media'即 不包括在内 部件。 C:\ Users \用户丹尼斯\文档\ Visual 工作室 2010 \项目\解决方案名称\ PROJECTNAME \ MainWindow.xaml
设计器无法加载此错误待处理。但是,该项目正在使用Blend,我可以在那里看到它。
声明如下(在窗口中):
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:MS_Internal_Media="clr-namespace:MS.Internal.Media;assembly=PresentationCore" mc:Ignorable="d" x:Class="projectName.MainWindow"
Height="272" Width="359" Loaded="Window_Loaded" WindowStyle="ThreeDBorderWindow" ResizeMode="NoResize" Icon="/projectName;component/Images/main.ico"
Title="Sample Project">
可能导致此错误的原因是什么?
答案 0 :(得分:1)
似乎这是一个已知的问题(也许bug太强了,如果它是一个设置或我失踪的东西,那么很高兴在这一个上得到纠正,无论如何......)在Visual Studio中 - 它仍然在VS2010中发生。
如果你在XAML中删除字符串“clr-namespace:”,只需要离开
xmlns:MS_Internal_Media="MS.Internal.Media;assembly=PresentationCore"
它将编译正常,您可以重新加载设计器。如果您再次添加了clr-namespace语法,它将构建正常但设计器仍然会出错。我相信这一定是Visual Studio本身的一个问题。
希望这种解决方法至少可以帮助您加载设计器并构建项目。
我已经多了解了一下这个问题,我认为这个问题可能就是那个程序集没有公共类型。查看.Net Reflector中的程序集,它们都是内部类。对于没有公共类型的所有程序集,将抛出您在VS中获得的相同错误。我希望Blends界面要么不检查它,要么更好地处理它。