【问题标题】:Cannot find MS.Internal.Media namespace in assembly在程序集中找不到 MS.Internal.Media 命名空间
【发布时间】:2010-06-22 20:18:15
【问题描述】:

我一直在开发 WPF 应用程序。由于我在 Expression Blend 4 中设计 UI 并在 Visual Studio 2010 中处理代码隐藏部分,因此我经常从一种工具切换到另一种工具。

我在现有的 Grid 中添加了一些图像控件,并为它们分配了一些图像。在 Blend 中,我构建了项目并运行了它。工作得很好。当我切换到 Visual Studio 时,我收到此错误:

未定义的 CLR 命名空间。这 'clr-namespace' URI 指的是 命名空间“MS.Internal.Media”即 不包括在 部件。 C:\Users\Dennis\Documents\Visual 工作室 2010\Projects\solutionName\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">

什么可能导致这个错误?

【问题讨论】:

    标签: c# .net wpf visual-studio-2010 expression-blend


    【解决方案1】:

    这似乎是 Visual Studio 中的一个已知问题(也许错误这个词太强了,如果它是一个设置或我也缺少的东西,那么很高兴在这个问题上得到纠正,无论如何....) - 它仍然在 VS2010 中发生。

    如果您在 XAML 中删除字符串“clr-namespace:”,则只剩下

    xmlns:MS_Internal_Media="MS.Internal.Media;assembly=PresentationCore"
    

    它会编译得很好,你可以重新加载设计器。如果您随后再次添加了 clr-namespace 语法,它将构建正常,但设计器仍然会出错。我相信这一定是 Visual Studio 本身的问题。

    希望此解决方法至少可以帮助您加载设计器并构建项目。

    在玩了这个之后,我认为问题可能在于该程序集没有公共类型。查看 .Net Reflector 中的程序集,它们都是内部类。对于没有公共类型的所有程序集,都会抛出您在 VS 中遇到的相同错误。我希望 Blends 界面要么不检查这个,要么处理得更好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 2014-11-10
      • 2018-02-26
      • 2021-03-14
      相关资源
      最近更新 更多