Partilhar via


Opções do compilador C# que especificam recursos

As opções a seguir controlam como o compilador C# cria ou importa recursos do Win32. A nova sintaxe do MSBuild é mostrada em negrito. A sintaxe csc.exe mais antiga é mostrada em code style.

  • Win32Resource / -win32res: Especifique um arquivo de recurso Win32 (.res).
  • Win32Icon / -win32icon: metadados de referência do arquivo ou arquivos de assembly especificados.
  • Win32Manifest / -win32manifest: Especifique um arquivo de manifesto do Win32 (.xml).
  • NoWin32Manifest / -nowin32manifest: Não inclua o manifesto Win32 padrão.
  • Recursos / -resource: Incorpore o recurso especificado (Formulário curto: /res).
  • LinkResources / -linkresources: vincule o recurso especificado a este assembly.

Nota

Consulte Opções do compilador para obter mais informações sobre como configurar essas opções para seu projeto.

Win32Recurso

A opção Win32Resource insere um recurso Win32 no arquivo de saída.

<Win32Resource>filename</Win32Resource>

filename é o arquivo de recurso que você deseja adicionar ao arquivo de saída. Um recurso Win32 pode conter informações de versão ou bitmap (ícone) que ajudariam a identificar seu aplicativo no Explorador de Arquivos. Se você não especificar essa opção, o compilador gerará informações de versão com base na versão do assembly.

Win32Icon

A opção Win32Icon insere um arquivo .ico no arquivo de saída, o que dá ao arquivo de saída a aparência desejada no Explorador de Arquivos.

<Win32Icon>filename</Win32Icon>

filename é o arquivo de .ico que você deseja adicionar ao arquivo de saída. Um arquivo .ico pode ser criado com o compilador de recursos. O compilador de recursos é invocado quando você compila um programa Visual C++; Um arquivo .ico é criado a partir do arquivo .rc .

Win32Manifest

Use a opção Win32Manifest para especificar um arquivo de manifesto do aplicativo Win32 definido pelo usuário a ser incorporado no arquivo executável portátil (PE) de um projeto.

<Win32Manifest>filename</Win32Manifest>

filename é o nome e o local do arquivo de manifesto personalizado. Por padrão, o compilador C# incorpora um manifesto do aplicativo que especifica um nível de execução solicitado de "asInvoker". Ele cria o manifesto na mesma pasta em que o executável é construído. Se desejar fornecer um manifesto personalizado, por exemplo, para especificar um nível de execução solicitado de "highestAvailable" ou "requireAdministrator", use essa opção para especificar o nome do arquivo.

Nota

Esta opção e a opção Win32Resources são mutuamente exclusivas. Se você tentar usar ambas as opções na mesma linha de comando, você receberá um erro de compilação.

Um aplicativo que não tenha um manifesto de aplicativo que especifique um nível de execução solicitado estará sujeito à virtualização de arquivo e registro no recurso Controle de Conta de Usuário no Windows. Para obter mais informações, consulte Controle de conta de usuário.

Seu aplicativo estará sujeito à virtualização se uma destas condições for verdadeira:

  • Você usa a opção NoWin32Manifest e não fornece um manifesto em uma etapa de compilação posterior ou como parte de um arquivo de recurso do Windows (.res) usando a opção Win32Resource.
  • Você fornece um manifesto personalizado que não especifica um nível de execução solicitado.

O Visual Studio cria um arquivo .manifest padrão e o armazena nos diretórios de depuração e liberação ao lado do arquivo executável. Você pode adicionar um manifesto personalizado criando um em qualquer editor de texto e, em seguida, adicionando o arquivo ao projeto. Ou, você pode clicar com o botão direito do mouse no ícone Projeto no Gerenciador de Soluções, selecionar Adicionar Novo Item e, em seguida, selecionar Arquivo de Manifesto do Aplicativo. Depois de adicionar seu arquivo de manifesto novo ou existente, ele aparecerá na lista suspensa Manifesto. Para obter mais informações, consulte Página de aplicativo, Project Designer (C#).

Você pode fornecer o manifesto do aplicativo como uma etapa pós-compilação personalizada ou como parte de um arquivo de recurso Win32 usando a opção NoWin32Manifest . Use essa mesma opção se quiser que seu aplicativo esteja sujeito à virtualização de arquivo ou registro no Windows Vista.

NoWin32Manifest

Use a opção NoWin32Manifest para instruir o compilador a não incorporar nenhum manifesto do aplicativo no arquivo executável.

<NoWin32Manifest />

Quando essa opção é usada, o aplicativo estará sujeito à virtualização no Windows Vista, a menos que você forneça um manifesto do aplicativo em um arquivo de recurso do Win32 ou durante uma etapa de compilação posterior.

No Visual Studio, defina essa opção na página Propriedade do aplicativo selecionando a opção Criar aplicativo sem manifesto na lista suspensa Manifesto. Para obter mais informações, consulte Página de aplicativo, Project Designer (C#).

Recursos

Incorpora o recurso especificado no arquivo de saída.

<Resources Include=filename>
  <LogicalName>identifier</LogicalName>
  <Access>accessibility-modifier</Access>
</Resources>

filename é o arquivo de recurso .NET que você deseja incorporar no arquivo de saída. identifier (opcional) é o nome lógico do recurso; O nome usado para carregar o recurso. O padrão é o nome do arquivo. accessibility-modifier (opcional) é a acessibilidade do recurso: público ou privado. O padrão é público. Por padrão, os recursos são públicos no assembly quando são criados usando o compilador C#. Para tornar os recursos privados, especifique private como o modificador de acessibilidade. Nenhuma outra acessibilidade além ou public private é permitida. Se filename for um arquivo de recurso .NET criado, por exemplo, por Resgen.exe ou no ambiente de desenvolvimento, ele pode ser acessado com membros no System.Resources namespace. Para obter mais informações, veja System.Resources.ResourceManager. Para todos os outros recursos, use os GetManifestResource Assembly métodos na classe para acessar o recurso em tempo de execução. A ordem dos recursos no arquivo de saída é determinada a partir da ordem especificada no arquivo de projeto.

LinkResources

Cria um link para um recurso .NET no arquivo de saída. O arquivo de recurso não é adicionado ao arquivo de saída. LinkResources difere da opção Resource, que incorpora um arquivo de recurso no arquivo de saída.

<LinkResources Include=filename>
  <LogicalName>identifier</LogicalName>
  <Access>accessibility-modifier</Access>
</LinkResources>

filename é o arquivo de recurso .NET ao qual você deseja vincular a partir do assembly. identifier (opcional) é o nome lógico do recurso; O nome usado para carregar o recurso. O padrão é o nome do arquivo. accessibility-modifier (opcional) é a acessibilidade do recurso: público ou privado. O padrão é público. Por padrão, os recursos vinculados são públicos no assembly quando são criados com o compilador C#. Para tornar os recursos privados, especifique private como o modificador de acessibilidade. Nenhum outro modificador além ou public private é permitido. Se filename for um arquivo de recurso .NET criado, por exemplo, por Resgen.exe ou no ambiente de desenvolvimento, ele pode ser acessado com membros no System.Resources namespace. Para obter mais informações, veja System.Resources.ResourceManager. Para todos os outros recursos, use os GetManifestResource Assembly métodos na classe para acessar o recurso em tempo de execução. O arquivo especificado em filename pode ser qualquer formato. Por exemplo, você pode querer tornar uma DLL nativa parte do assembly, para que ele possa ser instalado no cache de assembly global e acessado a partir do código gerenciado no assembly. Você pode fazer a mesma coisa no Assembly Linker. Para obter mais informações, consulte Al.exe (Assembly Linker) e Working with Assemblies and the Global Assembly Cache.