По большей части вы просто берете все, что Visual Studio устанавливает для вас по умолчанию ... Я имею в виду свойство BuildAction для каждого файла, выбранного в обозревателе решений. Есть несколько вариантов, и трудно понять, что будет делать каждый из них.
AdditionalFiles
? Я вижу это в VS 2015, но не могу найти ссылку для этого.Из документации:
источник
Страница - принимает указанный файл XAML, компилирует его в BAML и встраивает этот вывод в поток управляемых ресурсов для вашей сборки (в частности AssemblyName.g.resources). Кроме того, если у вас есть соответствующие атрибуты в корневом элементе XAML в файл, он создаст файл blah.g.cs, который будет содержать частичный класс «codebehind» для этой страницы; это в основном включает в себя вызов цикла BAML для повторной гидратации файла в память и для установки любых переменных-членов вашего класса для вновь созданных элементов (например, если вы положили x: Name = "foo" на элемент , вы сможете сделать это.foo.Background = Purple или подобное.
ApplicationDefinition - аналогичен Page, за исключением того, что он идет дальше и определяет точку входа для вашего приложения, которая будет создавать экземпляр объекта вашего приложения, вызывать метод run для него, который затем будет создавать экземпляр типа, установленного свойством StartupUri, и предоставит ваше основное окно ,
Кроме того, чтобы быть ясным, этот вопрос в целом бесконечен в своем наборе результатов; любой может определить дополнительные действия BuildActions, просто создав задачу MSBuild. Если вы посмотрите в каталог% systemroot% \ Microsoft.net \ framework \ v {version} \ и посмотрите файл Microsoft.Common.targets, вы сможете расшифровать гораздо больше (например, с помощью VS Pro и выше, есть действие «Shadow», которое позволяет генерировать частные средства доступа, чтобы помочь с модульным тестированием частных классов.
источник
VS2010 имеет свойство для «Build Action», а также для «Copy to Output Directory». Таким образом, действие «Нет» все равно будет копироваться в каталог сборки, если для свойства копирования установлено значение «Копировать, если новее» или «Копировать всегда».
Таким образом, действие «Сборка содержимого» должно быть зарезервировано для указания содержимого, к которому вы получите доступ через «Application.GetContentStream».
Я использовал параметр «Build Action» для «None» и «Copy to Output Direcotry» для «Copy if Newer» для некоторых внешних ссылок .config.
Г.
источник
В VS2008 запись в документе, которая кажется наиболее полезной:
Windows Presentation Foundation Создание приложения WPF (WPF)
мс-помощь: //MS.VSCC.v90/MS.MSDNQTR.v90.en/wpf_conceptual/html/a58696fd-bdad-4b55-9759-136dfdf8b91c.htm
ApplicationDefinition Идентифицирует файл разметки XAML, который содержит определение приложения (файл разметки XAML, корневым элементом которого является Application). ApplicationDefinition является обязательным, когда Install имеет значение true, а OutputType - winexe. Приложение WPF и, следовательно, проект MSBuild могут иметь только одно ApplicationDefinition.
Страница Идентифицирует файл разметки XAML, содержимое которого преобразуется в двоичный формат и компилируется в сборку. Элементы страницы обычно реализуются в сочетании с классом code-behind.
Наиболее распространенными элементами страницы являются файлы XAML, элементами верхнего уровня которых являются следующие:
Ресурс Идентифицирует файл ресурса, который компилируется в сборку приложения. Как упоминалось ранее, UICulture обрабатывает элементы ресурсов.
Содержимое Идентифицирует файл содержимого, который распространяется вместе с приложением. Метаданные, описывающие файл содержимого, компилируются в приложение (с использованием AssemblyAssociatedContentFileAttribute).
источник
Как насчет этой страницы из Microsoft Connect (объясняющей типы DesignData и DesignDataWithDesignTimeCreatableTypes). Цитирование:
Ниже описаны два действия по созданию файлов с образцами данных.
Образцам .xaml-файлов данных должно быть назначено одно из следующих действий по сборке:
DesignData : образцы типов данных будут созданы как искусственные типы. Используйте это действие по построению, когда образцы типов данных не создаются или имеют свойства только для чтения, для которых вы хотите определить значения образцов данных.
DesignDataWithDesignTimeCreatableTypes : образцы типов данных будут создаваться с использованием типов, определенных в файле примеров данных. Используйте это действие сборки, когда образцы типов данных могут быть созданы с использованием их пустого конструктора по умолчанию.
Не так невероятно исчерпывающе, но по крайней мере дает подсказку. Это пошаговое руководство MSDN также дает некоторые идеи. Я не знаю, применимы ли эти действия по сборке и к проектам, не относящимся к Silverlight.
источник
источник