Opzioni del compilatore C# che specificano le risorse

Le opzioni seguenti controllano il modo in cui il compilatore C# crea o importa le risorse Win32. La nuova sintassi di MSBuild viene visualizzata in grassetto. La sintassi del csc.exe precedente è illustrata in code style .

  • Win32resource ( / -win32res : specificare un file di risorse Win32 (. res).
  • Win32icon / -win32icon : fa riferimento ai metadati del file di assembly o dei file specificati.
  • Win32manifest / -win32manifest : specificare un file manifesto Win32 (. Xml).
  • Nowin32manifest / -nowin32manifest : non includere il manifesto Win32 predefinito.
  • Risorse / -resource : incorporare la risorsa specificata (forma breve:/res).
  • LinkResources / -linkresources : collega la risorsa specificata all'assembly.

Win32Resource

L'opzione win32resource ( inserisce una risorsa Win32 nel file di output.

<Win32Resource>filename</Win32Resource>

filename è il file di risorse che si desidera aggiungere al file di output. In una risorsa Win32 può essere contenute le informazioni sulla versione o sulla bitmap (icona) che consentono di identificare l'applicazione in Esplora file. Se non si specifica questa opzione, il compilatore genererà le informazioni sulla versione in base alla versione dell'assembly.

Win32Icon

L'opzione win32icon inserisce un file con estensione ICO nel file di output, che fornisce al file di output l'aspetto desiderato in Esplora file.

<Win32Icon>filename</Win32Icon>

filename è il file con estensione ico che si desidera aggiungere al file di output. Un file con estensione ico può essere creato con il compilatore di risorse. Il compilatore di risorse viene richiamato quando si compila un programma di Visual C++; un file con estensione ico viene creato dal file RC .

Win32Manifest

Usare l'opzione win32manifest per specificare un file manifesto dell'applicazione Win32 definito dall'utente da incorporare nel file eseguibile di tipo PE (Portable Executable) di un progetto.

<Win32Manifest>filename</Win32Manifest>

filename nome e percorso del file manifesto personalizzato. Per impostazione predefinita, il compilatore C# incorpora un manifesto dell'applicazione che specifica un livello di esecuzione richiesto "asInvoker". Crea il manifesto nella stessa cartella in cui viene compilato l'eseguibile. Se si desidera fornire un manifesto personalizzato, ad esempio per specificare un livello di esecuzione richiesto "highestAvailable" o "requireAdministrator", utilizzare questa opzione per specificare il nome del file.

Nota

Questa opzione e l'opzione Win32Resources si escludono a vicenda. Se si tenta di usare entrambe le opzioni nella stessa riga di comando si otterrà un errore di compilazione.

Un'applicazione che non dispone di un manifesto dell'applicazione che specifica un livello di esecuzione richiesto sarà soggetta alla virtualizzazione dei file e del registro di sistema nella funzionalità di controllo dell'account utente di Windows. Per altre informazioni, vedere Controllo dell'account utente.

L'applicazione sarà sottoposta a virtualizzazione se una di queste condizioni è vera:

  • Usare l'opzione nowin32manifest e non si fornisce un manifesto in un'istruzione di compilazione successiva o come parte di un file di risorse di Windows (res) tramite l'opzione win32resource ( .
  • Si fornisce un manifesto personalizzato che non specifica un livello di esecuzione richiesto.

Visual Studio crea un file manifesto predefinito e lo archivia nelle directory di debug e versione insieme al file eseguibile. Per aggiungere un manifesto personalizzato, crearne uno in qualsiasi editor di testo e quindi aggiungere il file al progetto. In alternativa, è possibile fare clic con il pulsante destro del mouse sull'icona del progetto in Esplora soluzioni, selezionare Aggiungi nuovo elemento e quindi selezionare file manifesto dell'applicazione. Una volta aggiunto il file manifesto nuovo o esistente, questo verrà visualizzato nell'elenco a discesa manifesto . Per altre informazioni, vedere pagina applicazione, Progettazione progetti (C#).

È possibile fornire il manifesto dell'applicazione come passaggio di post-compilazione personalizzato o come parte di un file di risorse Win32 utilizzando l'opzione nowin32manifest . Usare la stessa opzione se si vuole che l'applicazione sia sottoposta alla virtualizzazione dei file o del Registro di sistema in Windows Vista.

NoWin32Manifest

Usare l'opzione nowin32manifest per indicare al compilatore di non incorporare alcun manifesto dell'applicazione nel file eseguibile.

<NoWin32Manifest />

Quando viene usata questa opzione, l'applicazione è soggetta a virtualizzazione in Windows Vista a meno che non venga specificato un manifesto dell'applicazione in un file di risorsa Win32 file o durante una istruzione di compilazione successiva.

In Visual Studio impostare l'opzione nella pagina delle proprietà dell'applicazione selezionando l'opzione Crea applicazione senza manifesto nell'elenco a discesa Manifesto. Per altre informazioni, vedere pagina applicazione, Progettazione progetti (C#).

Risorse

Incorpora la risorsa specificata nel file di output.

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

filename è il file di risorse .NET che si desidera incorporare nel file di output. identifier (facoltativo) è il nome logico per la risorsa; nome usato per caricare la risorsa. L'impostazione predefinita corrisponde al nome del file. accessibility-modifier (facoltativo) è l'accessibilità della risorsa: pubblica o privata. Il valore predefinito è public. Per impostazione predefinita, le risorse sono pubbliche nell'assembly quando vengono create tramite il compilatore C#. Per renderle private, specificare private come modificatore di accessibilità. Non è consentita alcuna accessibilità diversa da public o private. Se filename è un file di risorse .NET creato, ad esempio, da Resgen.exe o nell'ambiente di sviluppo, è possibile accedervi con membri nello System.Resources spazio dei nomi. Per altre informazioni, vedere System.Resources.ResourceManager. Per tutte le altre risorse, per accedere alla risorsa in fase di esecuzione usare i metodi GetManifestResource della classe Assembly. L'ordine delle risorse nel file di output è determinato dall'ordine specificato nel file di progetto.

LinkResources

Crea un collegamento a una risorsa .NET nel file di output. Il file di risorse non viene aggiunto al file di output. LinkResources differisce dall'opzione Resource , che incorpora un file di risorse nel file di output.

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

filename è il file di risorse .NET a cui si desidera collegare l'assembly. identifier (facoltativo) è il nome logico per la risorsa; nome usato per caricare la risorsa. L'impostazione predefinita corrisponde al nome del file. accessibility-modifier (facoltativo) è l'accessibilità della risorsa: pubblica o privata. Il valore predefinito è public. Per impostazione predefinita, le risorse collegate sono pubbliche nell'assembly quando vengono create con il compilatore C#. Per renderle private, specificare private come modificatore di accessibilità. Non è consentito alcun modificatore diverso da public o private. Se filename è un file di risorse .NET creato, ad esempio, da Resgen.exe o nell'ambiente di sviluppo, è possibile accedervi con membri nello System.Resources spazio dei nomi. Per altre informazioni, vedere System.Resources.ResourceManager. Per tutte le altre risorse, per accedere alla risorsa in fase di esecuzione usare i metodi GetManifestResource della classe Assembly. Il file specificato in filename può avere qualsiasi formato. Può ad esempio risultare opportuno rendere una DLL nativa parte dell'assembly in modo che possa essere installata nella Global Assembly Cache e che sia possibile accedervi dal codice gestito nell'assembly. È possibile eseguire la stessa operazione in Assembly Linker. Per altre informazioni, vedere Al.exe (Assembly Linker) e Uso di assembly e della Global Assembly Cache.