Почему дизайнер Expression Blend 4 не работает, когда мы используем конфигурации сборки? - PullRequest
3 голосов
/ 07 июля 2010

У меня странная проблема с Expression Blend 4. Я использую Blend 4 в сочетании с Visual Studio 2010 довольно долго без происшествий (кроме сверхчастых сбоев).Теперь наш графический дизайнер хочет начать использовать Blend для некоторой работы по подкраске.

Мы смогли заставить Blend скомпилировать решение на своем компьютере.К сожалению, когда мы пытаемся открыть любой файл XAML, мы получаем ошибки от дизайнера, когда ресурсы, включенные в словарь объединенных ресурсов и вложенные свойства, не распознаются.По сути, создается впечатление, что артефакты сборки не видны даже при том, что Blend компилирует решение без ошибок.

Единственная странность в нашей настройке состоит в том, что наше решение содержит несколько конфигураций сборки, и вы не можете изменить свою сборку.конфигурация в Blend.

Как вы думаете, почему дизайнер Blend не может загрузить созданные файлы?

Ответы [ 2 ]

13 голосов
/ 08 июля 2010

Изучив, как Blend 4 создает проекты / решения Visual Studio, я выяснил, почему копия Blend нашего графического дизайнера не работала должным образом, и решил проблему. Виноваты были множественные конфигурации сборки, которые мы настроили. Вот особенности того, что я обнаружил, и список предупреждений для всех, кто использует несколько конфигураций сборки, Blend 4 и Visual Studio 2010.

Предупреждение 1: Blend не позволяет выбрать конфигурацию сборки.

В Visual Studio при сборке вы всегда строите с определенной конфигурацией сборки. Этот параметр можно изменить. Blend, похоже, не имеет возможности изменять настройки конфигурации сборки в любом месте своего пользовательского интерфейса. Вместо этого он использует собственную эвристику для выбора используемой конфигурации сборки.

Предупреждение 2: Blend не использует ту же логику для выбора конфигурации сборки при сборке, как при проектировании.

Это то, что вызывало у нас проблемы. Кажется, что у Blend есть два разных способа выбора конфигурации сборки. При компиляции он использует логику в файлах .csproj для выбора конфигурации сборки по умолчанию (см. Предупреждение 3). Однако проектировщик ищет файл решения, для которого выходной каталог конфигурации сборки следует использовать для разрешения ссылок на сборки (см. Предупреждение 4). Таким образом, хотя Blend компилировалась нормально, дизайнер смотрел не на скомпилированные файлы, а на пустой каталог bin, который он создал.

Предупреждение 3: Blend и Visual Studio не обрабатывают конфигурации сборки по умолчанию одинаково.

В верхней части файлов .csproj есть группа свойств, которая указывает, какую конфигурацию сборки использовать, если она не указана при запуске csc.exe. Visual Studio, похоже, не изменяет эти данные, вероятно, потому, что в этом нет необходимости, поскольку всегда использует определенную конфигурацию сборки. Мы удалили конфигурации Debug и Release по умолчанию и создали свои собственные конфигурации DebugWindows, ReleaseWindows, DebugMac и ReleaseMac, но в файлах проекта все еще было указано, что они используют «Debug», когда конфигурация не указана. Blend 4 запускает csc.exe без конфигурации сборки, поэтому используется логика по умолчанию. Поэтому мне пришлось вручную исправить файлы .csproj.

Предупреждение 4. Visual Studio не позволяет заказывать конфигурации сборки вашего решения, и порядок относится к Blend.

Вопреки тому, как Blend выбирает конфигурации сборки при компиляции, кажется, что дизайнер Blend использует первую конфигурацию решения в файле решения, чтобы связать проекты с конфигурацией сборки. Затем дизайнер ищет выходной каталог для , который конфигурация для своих сборок. Другими словами, если есть несоответствие между настройками конфигурации сборки .csproj и настройками конфигурации первого решения, дизайнер не увидит ваши классы, словари объединенных ресурсов и т. Д., Даже если вы создали проект.

Какая бы конфигурация решения ни была первой, ее нельзя изменить с помощью Visual Studio. Чтобы исправить то, где дизайнер искал артефакты сборки, нам пришлось вручную переупорядочить конфигурации решения в файле .sln.

2 голосов
/ 26 января 2011

Вы также можете быстро решить эту проблему, добавив конфигурацию Debug обратно в ваше решение:

Создайте другую конфигурацию под названием «Debug», расположенную первой в списке конфигураций.

enter image description here

Вы можете сделать это двумя способами:
1) Переименуйте уже существующую конфигурацию в «Отладка»
- Откройте диспетчер конфигурации
- Раскройте раскрывающийся список «Активная настройка решения»
- выберите и вы можете редактировать или удалять любую из имеющихся конфигураций.
2) Добавить новую конфигурацию.
- Следуйте инструкциям выше, а затем
- Вам нужно будет изменить порядок конфигураций в файле решения вручную.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...