Не удается найти пространство имен MS.Internal.Media в сборке. - PullRequest
2 голосов
/ 23 июня 2010

Я работал над приложением WPF. Поскольку я проектирую пользовательский интерфейс в Expression Blend 4 и работаю над частью кода в Visual Studio 2010, я постоянно переключаюсь с одного инструмента на другой.

Я добавил некоторые элементы управления изображениями в существующую сетку и назначил им несколько изображений. В Blend я создал проект и запустил его. Работало просто отлично. Когда я переключился на Visual Studio, я получаю эту ошибку:

Неопределенное пространство имен CLR. URI 'clr-namespace' относится к пространство имен "MS.Internal.Media", которое не входит в сборка. C: \ Users \ Dennis \ Documents \ Визуальное студия 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">

Что может быть причиной этой ошибки?

1 Ответ

1 голос
/ 15 июля 2010

Кажется, что это известная проблема (возможно, ошибка - слишком сильное слово, если это параметр или что-то, чего мне тоже не хватает, тогда я буду рад исправить это, во всяком случае ....) в Visual Studio- это все еще происходит в VS2010.

Если вы удалите строку "clr-namespace:" в XAML, просто оставив вам

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

, она будет хорошо скомпилирована, и вы сможете перезагрузитьдизайнер.Если вы затем добавите синтаксис clr-namespace снова, он будет работать нормально, но конструктор все равно выдаст ошибку.Я считаю, что это должно быть проблемой в самой Visual Studio.

Надеюсь, что этот обходной путь по крайней мере поможет вам загрузить дизайнер и получить проект.

Поиграв с этим немного больше, ядумаю, что проблема, вероятно, в том, что эта сборка не имеет открытых типов.Глядя на сборку в .Net Reflector они все внутренние классы.Та же ошибка, что вы получаете в VS, генерируется для всех сборок, где нет открытых типов.Я ожидаю, что интерфейс Blends либо не проверяет это, либо обрабатывает его лучше.

...