unload - Каковы различные настройки «Создание действия» в свойствах проекта Visual Studio и что они делают?




visual studio unload project (5)

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


VS2010 имеет свойство «Build Action», а также для «Copy to Output Directory». Таким образом, действие «Нет» все равно будет скопировано в каталог сборки, если для свойства copy установлено значение «Копировать, если новый» или «Копировать всегда».

Таким образом, действие сборки «Контент» должно быть зарезервировано для указания содержимого, доступ к которому вы получите через «Application.GetContentStream»,

Я использовал настройку «Build Action» для параметра «None» и «Copy to Output Direcotry» «Копировать, если новый» для некоторых связанных с внешней связью .config.

Г.


В VS2008 запись doc, которая представляется наиболее полезной:

Windows Presentation Foundation Создание WPF-приложения (WPF)

мс-помощь: //MS.VSCC.v90/MS.MSDNQTR.v90.en/wpf_conceptual/html/a58696fd-bdad-4b55-9759-136dfdf8b91c.htm

ApplicationDefinition Идентифицирует файл разметки XAML, содержащий определение приложения (файл разметки XAML, корневым элементом которого является приложение). ApplicationDefinition является обязательным, если Install is true, а OutputType - winexe. Приложение WPF и, следовательно, проект MSBuild могут иметь только одно ApplicationDefinition.

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

Наиболее распространенными элементами страницы являются файлы XAML, элементы верхнего уровня которых являются одним из следующих:

Window (System.Windows..::.Window).

Page (System.Windows.Controls..::.Page).

PageFunction (System.Windows.Navigation..::.PageFunction<(Of <(T>)>)).

ResourceDictionary (System.Windows..::.ResourceDictionary).

FlowDocument (System.Windows.Documents..::.FlowDocument).

UserControl (System.Windows.Controls..::.UserControl).

Ресурс Идентифицирует файл ресурсов, который скомпилирован в сборку приложения. Как упоминалось ранее, UICulture обрабатывает элементы ресурсов.

Содержимое Определяет файл содержимого, который распространяется вместе с приложением. Метаданные, описывающие файл содержимого, скомпилируются в приложение (используя AssemblyAssociatedContentFileAttribute).


Как насчет этой страницы из Microsoft Connect (объясняя типы DesignData и DesignDataWithDesignTimeCreatableTypes). Цитирование:

Ниже описываются два действия по созданию файлов выборочных данных.

Образцам данных .xaml-файлов должно быть присвоено одно из следующих действий по созданию:

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

DesignDataWithDesignTimeCreatableTypes : Образцы типов данных будут создаваться с использованием типов, определенных в файле данных образца. Используйте это действие сборки, когда образцы типов данных могут быть созданы с использованием пустого конструктора по умолчанию.

Не настолько невероятно исчерпывающий, но, по крайней мере, дает подсказку. Это прошивка MSDN также дает некоторые идеи. Я не знаю, применимы ли эти действия для проектов не для Silverlight.


Страница - принимает указанный файл XAML и компилируется в BAML и вставляет этот вывод в поток управляемых ресурсов для вашей сборки (в частности, AssemblyName.g.resources). Кроме того, если у вас есть соответствующие атрибуты в корневом элементе XAML в файл, он создаст файл blah.g.cs, который будет содержать частичный класс «codebehind» для этой страницы; это в основном связано с вызовом BAML goop, чтобы повторно убрать файл в память и установить любую из переменных-членов вашего класса на созданные сейчас элементы (например, если вы поместите x: Name = "foo" на элемент , вы сможете сделать this.foo.Background = фиолетовый или аналогичный.

ApplicationDefinition - аналогично странице, за исключением того, что она идет onestep furthur, и определяет точку входа для вашего приложения, которая будет создавать экземпляр вашего объекта приложения, запустить вызов на нем, который затем создаст экземпляр типа, установленного свойством StartupUri, и предоставит ваше основное окно ,

Кроме того, чтобы быть ясным, этот вопрос в целом преувеличен в его наборе результатов; любой может определить дополнительные функции BuildActions, просто создав задачу MSBuild. Если вы посмотрите в каталоге% systemroot% \ Microsoft.net \ framework \ v {version} \ и посмотрите файл Microsoft.Common.targets, вы сможете расшифровать еще много (например, с помощью VS Pro и выше, существует действие «Тень», которое позволяет создавать частные помощники, чтобы помочь с индивидуальным тестированием частных классов.


  • Нет . Файл не включен в группу вывода проекта и не компилируется в процессе сборки. Примером может служить текстовый файл, содержащий документацию, такую ​​как файл Readme.

  • Компиляция : файл компилируется в вывод сборки. Этот параметр используется для файлов кода.

  • Содержимое . Позволяет получить файл (в том же каталоге, что и сборка), в качестве потока через Application.GetContentStream (URI). Чтобы этот метод работал, ему нужен пользовательский атрибут AssemblyAssociatedContentFile, который Visual Studio любезно добавляет, когда вы помечаете файл как «Контент»,

  • Встроенный ресурс : внедряет файл в ресурс манифеста эксклюзивных сборок.

  • Ресурс (только WPF) : внедряет файл в общий (по всем файлам в сборке с аналогичной настройкой) ресурс манифеста сборки с именем AppName.g.resources.

  • Страница (только для WPF) : используется для компиляции файла baml в baml . Затем baml внедряется с той же методикой, что и Resource (т.е. доступен как «AppName.g.resources»)

  • ApplicationDefinition (только для WPF) : пометьте файл XAML / class, который определяет ваше приложение. Вы указываете код с положением x: Class = "Namespace.ClassName" и задаете начальную форму / страницу с помощью StartupUri = "Window1.xaml"

  • SplashScreen (только для WPF) : изображение, помеченное как SplashScreen , отображается автоматически при загрузке приложения WPF, а затем исчезает

  • DesignData : компилирует модели просмотра XAML, чтобы пользовательские элементы управления могли просматриваться с образцами данных в Visual Studio (используются макетные типы)

  • DesignDataWithDesignTimeCreatableTypes : компилирует модели просмотра XAML, чтобы пользовательские элементы управления могли просматриваться с образцами данных в Visual Studio (использует фактические типы)

  • EntityDeploy : (Entity Framework) : используется для развертывания артефактов Entity Framework

  • CodeAnalysisDictionary : XML-файл, содержащий пользовательский словарь слов для правил орфографии





projects-and-solutions