Подтвердить что ты не робот

Проблемы после копирования элементов управления XAML из приложения WPF в библиотеку классов

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

Файл проекта библиотеки не может указывать элемент ApplicationDefinition.

Файл проекта содержит недопустимое значение свойства.

Как можно устранить эти ошибки?

4b9b3361

Ответ 1

При копировании и вставке файлов либо в проект, либо в другой проект Visual Studio имеет неприятную привычку не сохранять одно и то же свойство BuildAction. Он часто изменяет действие сборки на кажущуюся случайную величину, например. ApplicationDefinition, что приводит к ошибке сборки.

Проверьте (в окне свойств Visual Studio с файлом, выбранным в обозревателе решений), что каждый из ваших .xaml файлов имеет свойство BuildAction Страница и ваш код файлы имеют свойство BuildAction Компилировать.

Ответ 2

Вы также можете увидеть это, даже если ваши действия сборки установлены правильно. Например, если вы запустите проект в качестве приложения, а затем переключите его на библиотеку классов. В этом случае вам также необходимо запомнить App.xaml(и соответствующие App.cs).

Ответ 3

Действие по созданию элемента управления Xaml должно быть изменено с ApplicationDefinition на Page (к этому свойству можно обратиться, щелкнув правой кнопкой мыши элемент управления в древовидной структуре Solution Explorer и выбрав свойства).

Ответ 4

Это также когда мы скопируем файл Image/XAML в проект ClassLibrary.

Измените свойство свойства сборки этого изображения на ресурсы

Ответ 5

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


Абстрактный пример

1 решение, которое имеет 2 проекта: PRINTNOTESPROJ и MAKENOTESPROJ.

Во время разработки я использовал окно XAML в MAKENOTESPROJ, которое должно фактически быть частью PRINTNOTESPROJ в исполняемых файлах Release.

При переключении на Build- > Release я просто нажал на "PrintWindow.XAML" (в MAKENOTESPROJ и с дочерним принтеромWindow.xaml.cs) и DRAGGED на мой PRINTNOTESPROJ.

* Это ключ. Я забыл, что это только COPIES связанные файлы с новым проектом [по крайней мере в VS 2010]. С этого момента я получил вашу ошибку, пока не удалю "PrintWindow.xaml" из моего оригинального проекта MAKENOTESPROJ.

Надеюсь, это имеет смысл... Прокомментируйте с вопросами!