Неудачные сопоставления пространства имен WPF в Visual Studio 2010 - PullRequest
18 голосов
/ 28 мая 2010

Я только что установил Visual Studio 2010 и преобразовал один из моих проектов Visual Studio 2008 WPF для тестирования. В то время как проект собирается и работает правильно, VS Designer не может обработать пользовательские сопоставления пространства имен, которые я выдавал с ошибкой:

Сборка должна быть указана для файлов XAML, которые не являются частью проекта. Повторно откройте этот файл XAML после добавления его в проект, закройте этот файл и снова откройте его, используя проект, с которым он связан, или измените пространство имен clr, включив в него имя сборки.

Указанные пространства имен являются частью проекта. Visual Studio 2008 не имел проблем с XAML. Поэтому я создал новый пустой проект WPF под названием Test1 с пространством имен 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>

Это дает ту же ошибку. И, что удивительно, Google не сообщает о результатах за ошибку! Я попробовал несколько вариантов, таких как добавление ;assembly= или ;assembly=Test1, но это не помогло.

Может кто-нибудь заметить, что я делаю не так? Если ничего, я был бы очень признателен за предложения, почему это может не сработать.

Редактировать: Согласно комментариям, это происходит только тогда, когда проект открывается из сетевого ресурса. Это не происходит, если проект открыт на локальном диске. Однако я хотел бы иметь возможность открыть его на общем сетевом ресурсе, поэтому я оставлю вопрос открытым.

Ответы [ 6 ]

7 голосов
/ 18 ноября 2010

Нил Аллен прав. Подключите папку как диск, и все будет хорошо. Как на карте: http://www.online -tech-tips.com / компьютер-советы / как к карте-а-диск-в-окна /

5 голосов
/ 23 июня 2010

У меня была та же проблема, но я обнаружил, что использование сопоставленного диска вместо UNC-пути мне подходит.

Привет

Нил Аллен

2 голосов
/ 05 июля 2011

Просто чтобы подвести итог всем ответам на этот пост, потому что эта проблема также была для меня болью, и мне удалось решить ее следующим образом.

Прежде всего, проблема заключается в том, что проект не находится на локальном диске, что создает некоторые проблемы в среде Visual Studio.

Для решения проблемы:

  1. Убедитесь, что проект открыт с использованием подключенного диска (например, P:/Projects/.../mySolution.sln). Будьте осторожны, это означает, что отображение диска недостаточно; Вы должны открыть его из сопоставленного пути (из окон проводника, использующего сопоставленный диск). Если вы продолжите загружать его, используя меню «недавние проекты» в VS, путь будет по-прежнему абсолютным.

  2. Измените файл конфигурации среды разработки с именем devenv.exe.config и добавьте <loadFromRemoteSources enabled="true" /> в раздел configuration/runtime. Этот файл находится на диске, на котором установлен VS.

Скорее всего, если вы столкнетесь с этой проблемой, вы будете работать в корпоративной среде, где у вас может быть ограниченный доступ к локальному жесткому диску, что означает, что вам нужно попросить отдел ИТ-инфраструктуры внести изменения для вас.

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

Надеюсь, это поможет.

2 голосов
/ 29 апреля 2011

В связи с этим возникла проблема с подключением. В обходных путях есть ссылка на что-то, что вы можете попробовать сделать так: http://connect.microsoft.com/VisualStudio/feedback/details/568464/wpf-project-on-a-network-share-with-clr-namespace#details

Это прямая ссылка на обходной путь; http://msdn.microsoft.com/en-us/library/dd409252.aspx

0 голосов
/ 12 февраля 2013

Сетевой путь был виновником в моем случае.

0 голосов
/ 30 апреля 2011

Подобная проблема произошла с некоторыми в нашей компании, потому что мы использовали сетевой ресурс для каждого разработчика.

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

Это может быть что-то с доменом или средой ... и VS плохая обработка этого?

...