Параметры компилятора C#, указывающие ресурсы
Следующие параметры определяют способ создания и импорта ресурсов Win32 компилятором C#. Новый синтаксис MSBuild выделен полужирным шрифтом. Для старого синтаксиса csc.exe используется формат code style
.
- Win32Resource /
-win32res
: указание файла ресурсов Win32 (RES-файл). - Win32Icon /
-win32icon
: создание ссылки на метаданные из указанного файла или файлов сборки. - Win32Manifest /
-win32manifest
: указание файла манифеста Win32 (XML-файл). - NoWin32Manifest /
-nowin32manifest
: указание не включать манифест Win32 по умолчанию. - Resources /
-resource
: встраивание указанного ресурса (короткая форма: /res). - LinkResources /
-linkresources
: связывание указанного ресурса с этой сборкой.
Примечание.
Дополнительные сведения о настройке этих параметров для проекта см. в параметрах компилятора.
Win32Resource
Параметр Win32Resource вставляет ресурс Win32 в выходной файл.
<Win32Resource>filename</Win32Resource>
filename
— это файл ресурсов, который требуется добавить в выходной файл. Ресурс Win32 может содержать сведения о версии или точечный рисунок (значок) для упрощения идентификации приложения в проводнике. Если этот параметр не задан, компилятор будет создавать сведения о версии на основе версии сборки.
Win32Icon
Параметр Win32Icon вставляет в выходной файл ICO-файл, который придает выходному файлу необходимый вид в проводнике.
<Win32Icon>filename</Win32Icon>
filename
— это файл с расширением .ico, который требуется добавить в выходной файл. Файл с расширением .ico можно создать с помощью компилятора ресурсов. Компилятор ресурсов вызывается при компиляции программы Visual C++. При этом файл с расширением .ico создается из файла .rc.
Win32Manifest
Параметр Win32Manifest позволяет указать пользовательский файл манифеста приложения win32manifest для внедрения в переносимый исполняемый файл проекта (PE-файл).
<Win32Manifest>filename</Win32Manifest>
filename
— это имя и расположение пользовательского файла манифеста. По умолчанию компилятор C# внедряет манифест приложения, определяющий запрошенный уровень выполнения asInvoker. Он создает манифест в той же папке, в которой создается исполняемый файл. Если необходимо предоставить пользовательский манифест, например, чтобы задать уровень выполнения highestAvailable or requireAdministrator, используйте этот параметр, чтобы указать имя файла.
Примечание.
Этот параметр и параметр Win32Resources являются взаимоисключающими. При попытке использовать оба параметра в одной командной строке возникнет ошибка построения.
Для приложения без манифеста, определяющего запрошенный уровень выполнения, требуется виртуализация файлов и реестра с помощью функции контроля учетных записей в Windows. Дополнительные сведения см. в разделе Контроль учетных записей.
Приложение требует виртуализации в любом из следующих случаев:
- Вы можете использовать параметр NoWin32Manifest и не предоставлять манифест на более позднем этапе сборки или в файле ресурсов Windows (.res) с помощью параметра Win32Resource.
- Вы можете предоставлять пользовательский манифест, который не определяет запрошенный уровень выполнения.
Visual Studio создает файл по умолчанию с расширением .manifest и сохраняет его в каталогах отладки и выпуска вместе с исполняемым файлом. Пользовательский манифест можно добавить, создав его в любом текстовом редакторе и добавив полученный файл в проект. Вы также можете щелкнуть значок проекта в Обозревателе решений и нажать кнопку Добавить новый элемент, а затем Файл манифеста приложения. Добавленный новый или существующий файл манифеста появится в раскрывающемся списке Манифест. Дополнительные сведения см. в разделе Страница "Приложение" в конструкторе проектов (C#).
Манифест приложения можно предоставить во время пользовательского этапа после сборки или в составе файла ресурсов Win32 с помощью параметра NoWin32Manifest. Этот же параметр можно использовать, если вы хотите, чтобы ваше приложение требовало виртуализации файлов или реестров в Windows Vista.
NoWin32Manifest
С помощью параметра NoWin32Manifest можно указать компилятору не внедрять манифест приложения в исполняемый файл.
<NoWin32Manifest />
При использовании этого параметра приложение будет подлежать виртуализации в Windows Vista, если манифест приложения не будет предоставлен в файле ресурсов Win32 или на более поздних этапах сборки.
В Visual Studio этот параметр можно задать на странице Свойство приложения, выбрав в раскрывающемся списке Манифест пункт Создать приложение без манифеста. Дополнительные сведения см. в разделе Страница "Приложение" в конструкторе проектов (C#).
Ресурсы
Внедряет указанный ресурс в выходной файл.
<Resources Include=filename>
<LogicalName>identifier</LogicalName>
<Access>accessibility-modifier</Access>
</Resources>
filename
— это файл ресурсов .NET, который требуется внедрить в выходной файл. identifier
(необязательно) — это логическое имя ресурса, используемое для его загрузки. По умолчанию используется имя файла. accessibility-modifier
(необязательно) — это доступность ресурса: public (открытый) или private (закрытый). Значение по умолчанию: public. По умолчанию ресурсы в сборке открыты, если они создавались с помощью компилятора C#. Чтобы сделать ресурс закрытым, укажите параметр private
в качестве модификатора доступа. Уровни доступности, отличные от public
или private
, не допускаются. Если filename
является файлом ресурсов .NET, созданным, например, с помощью Resgen.exe или в среде разработки, то к нему можно обращаться с помощью элементов в пространстве имен System.Resources. Дополнительные сведения см. в разделе System.Resources.ResourceManager. Чтобы получить доступ ко всем остальным ресурсам во время выполнения, используйте методы GetManifestResource
в классе Assembly. Порядок расположения ресурсов в выходном файле будет определяться порядком, указанным в файле проекта.
LinkResources
Создает в выходном файле ссылку на ресурс .NET. Файл ресурсов не добавляется в выходной файл. Параметр LinkResources отличается от параметра Resource, который внедряет файл ресурсов в выходной файл.
<LinkResources Include=filename>
<LogicalName>identifier</LogicalName>
<Access>accessibility-modifier</Access>
</LinkResources>
filename
— это файл ресурсов .NET, ссылку на который необходимо создать из сборки. identifier
(необязательно) — это логическое имя ресурса, используемое для его загрузки. По умолчанию используется имя файла. accessibility-modifier
(необязательно) — это доступность ресурса: public (открытый) или private (закрытый). Значение по умолчанию: public. По умолчанию связанные ресурсы в сборке открыты, если они создавались с помощью компилятора C#. Чтобы сделать ресурс закрытым, укажите параметр private
в качестве модификатора доступа. Модификаторы, отличные от public
или private
, не допускаются. Если filename
является файлом ресурсов .NET, созданным, например, с помощью Resgen.exe или в среде разработки, то к нему можно обращаться с помощью элементов в пространстве имен System.Resources. Дополнительные сведения см. в разделе System.Resources.ResourceManager. Чтобы получить доступ ко всем остальным ресурсам во время выполнения, используйте методы GetManifestResource
в классе Assembly. Файл, указанный в параметре filename
, может иметь любой формат. Например, может потребоваться сделать имеющуюся на компьютере библиотеку DLL частью сборки, поэтому ее можно разместить в глобальном кэше сборок и обеспечить к ней доступ из управляемого кода сборки. Это действие можно также выполнить в компоновщике сборок. Дополнительные сведения см. в разделах Al.exe (компоновщик сборок) и Работа со сборками и глобальным кэшем сборок.