Что такое действие по созданию контента в Visual Studio?
Что делает действие по построению контента в Visual Studio? Похоже, что он ничего не делает.
Статья о свойствах файла на MSDN (больше не существует) гласит:
Content - файл не скомпилирован, но включен в группу вывода Content. Например, этот параметр является значением по умолчанию для веб файла.htm или другого типа.
Но я понятия не имею, что означает "группа вывода контента".
Это что-то о развертывании? Значит, действие не имеет реального эффекта при создании, но только позже при развертывании?
Ответы
Ответ 1
Обновленная документация по Visual Studio имеет более содержательное описание:
Content - файл, помеченный как Content, может быть извлечен как поток, вызвав Application.GetContentStream. Для проектов ASP.NET эти файлы включаются как часть сайта при его развертывании.
Также после некоторого тестирования и с подсказкой из Каковы различные настройки "Build action" в свойствах проекта Visual Studio и что они делают? Я обнаружил, что действие сборки содержимого имеет такой эффект в проектах WPF (возможно, и в ASP).
Добавляет
[assembly: System.Windows.Resources.AssemblyAssociatedContentFileAttribute("filename")]
к WpfApplication1_Content.g.cs
. Прочитайте о AssemblyAssociatedContentFileAttribute
.
В консольных приложениях или приложениях WinForms он ничего не делает (ни в исходном коде, ни в выходном двоичном файле).
Хотя в комментарии к ранее упомянутому вопросу есть примечание о влиянии на развертывание:
Также обратите внимание, что содержимое будет включено при использовании развертывания одним щелчком, но ничего не будет, даже если выбрано "копировать, если новее".
Возможно, это работает даже для консольных приложений и приложений WinForms (я не пробовал).
Ответ 2
"Содержимое" означает, что это элемент развертываемого проекта, он сигнализирует, что файл необходимо скопировать на целевой компьютер.
Что-то, что вы можете увидеть в простом режиме консольного режима. Project + Добавить новый элемент, выберите шаблон элемента Bitmap File. Его действие сборки автоматически устанавливается в "Содержимое". Используйте "Свойства проекта +", "Опубликовать" и нажмите кнопку "Файлы приложений". Обратите внимание, как битмап автоматически добавляется в список развернутых файлов:
![enter image description here]()
Вернитесь в окно "Свойства" и измените его "Действие сборки" на "Нет". Нажмите кнопку еще раз и обратите внимание, как файл теперь больше не включен.
Также используется утилитами установщика, которые интегрируются с VS по той же самой причине. И большое дело в веб-приложениях, у них обычно есть много файлов, которые необходимо развернуть на веб-сервере.
Ответ 3
Я думаю, что это относится только к проектам С#. См. Изображение:
![Content]()
Если вы установите "Копировать каталог вывода" в "Копировать всегда" или "Копировать, если новый", он скопирует этот файл в выходную папку при сборке. Какие действия выполняются, когда вы нажимаете "Сборка (решение)" , зависит от свойства "Создать действие". Из того, что я понимаю на веб-сайте Microsoft, он просто копирует файл, если он является контентом, например текстом, html или другим нормальным файлом.
Другие Действия сборки не известны мне, это похоже на расширенный вариант.
В нижней строке: это похоже на функцию, которая помогает сохранять структуру папок и файлы, организованные каждой сборкой, поэтому она всегда готова к развертыванию. Надеюсь, это даст вам представление об этой функции.