Options de compilateur C# qui spécifient les ressources
Les options suivantes contrôlent la façon dont le compilateur C# crée ou importe des ressources Win32. La nouvelle syntaxe MSBuild est affichée en gras. La syntaxe csc.exe plus ancienne est indiquée en code style
.
- Win32Resource /
-win32res
: spécifiez un fichier de ressources Win32 (.res). - Win32Icon /
-win32icon
: référencez les métadonnées du fichier ou des fichiers d’assembly spécifiés. - Win32Manifest /
-win32manifest
: spécifiez un fichier manifeste Win32 (.xml). - NoWin32Manifest /
-nowin32manifest
: n’incluez pas le manifeste Win32 par défaut. - Ressources /
-resource
: incorporez la ressource spécifiée (forme abrégée : /res). - LinkResources /
-linkresources
: liez la ressource spécifiée à cet assembly.
Remarque
Reportez-vous à la section Options du compilateur pour plus d'informations sur la configuration de ces options pour votre projet.
Win32Resource
L’option Win32Resource insère une ressource Win32 dans le fichier de sortie.
<Win32Resource>filename</Win32Resource>
filename
est le fichier de ressources que vous voulez ajouter à votre fichier de sortie. Une ressource Win32 peut contenir des informations sur la version ou le fichier bitmap (icône) qui permettent d’identifier votre application dans l’Explorateur de fichiers. Si vous ne spécifiez pas cette option, le compilateur génère des informations de version en fonction de la version de l’assembly.
Win32Icon
L’option Win32Icon insère un fichier .ico dans le fichier de sortie, ce qui lui donne l’apparence souhaitée dans l’Explorateur de fichiers.
<Win32Icon>filename</Win32Icon>
filename
est le fichier .ico que vous voulez ajouter à votre fichier de sortie. Un fichier .ico peut être créé avec le compilateur de ressources. Le compilateur de ressources est appelé quand vous compilez un programme Visual C++ ; un fichier .ico est alors créé à partir du fichier .rc.
Win32Manifest
Utilisez l’option Win32Manifest pour spécifier un fichier manifeste d’application Win32 défini par l’utilisateur à incorporer dans le fichier exécutable portable (PE) d’un projet.
<Win32Manifest>filename</Win32Manifest>
filename
est le nom et l’emplacement du fichier manifeste personnalisé. Par défaut, le compilateur C# incorpore un manifeste d’application qui spécifie le niveau d’exécution demandé « asInvoker ». Il crée le manifeste dans le même dossier que celui dans lequel l’exécutable est généré. Pour fournir un manifeste personnalisé, par exemple pour spécifier le niveau d’exécution requis « highestAvailable » ou « requireAdministrator », utilisez cette option pour indiquer le nom du fichier.
Notes
Cette option et l’option Win32Resources s’excluent mutuellement. Si vous tentez d’utiliser ces deux options dans la même ligne de commande, une erreur de build se produira.
Une application sans manifeste d’application pour spécifier le niveau d’exécution demandé est soumise à une virtualisation des fichiers et des registres sous la fonctionnalité Contrôle de compte d’utilisateur de Windows. Pour plus d’informations, consultez Contrôle de compte d’utilisateur.
Votre application sera soumise à la virtualisation si l’une de ces conditions est vérifiée :
- Vous utilisez l’option NoWin32Manifest sans fournir de manifeste au cours d’une étape de génération ultérieure ou en tant que partie du fichier de ressources Windows (.res) à l’aide de l’option Win32Resource.
- Vous fournissez un manifeste personnalisé qui ne spécifie pas de niveau d’exécution demandé.
Visual Studio crée un fichier .manifest par défaut et le stocke dans les répertoires de débogage et de mise en production avec le fichier exécutable. Vous pouvez ajouter un manifeste personnalisé en en créant un dans un éditeur de texte et en ajoutant le fichier au projet. Vous pouvez également cliquer avec le bouton droit sur l’icône Projet dans Explorateur de solutions, sélectionner Ajouter un nouvel élément, puis sélectionner Fichier manifeste de l’application . Une fois que vous avez ajouté votre fichier manifeste nouveau ou existant, il apparaît dans la liste déroulante Manifeste. Pour plus d’informations, consultez Page Application, Concepteur de projets (C#).
Vous pouvez fournir le manifeste de l’application en tant qu’étape après génération personnalisée ou en tant que partie d’un fichier de ressources Win32 à l’aide de l’option NoWin32Manifest. Utilisez cette même option pour que votre application soit soumise à la virtualisation des fichiers ou des registres dans Windows Vista.
NoWin32Manifest
Utilisez l’option NoWin32Manifest pour indiquer au compilateur de ne pas incorporer le manifeste de l’application dans le fichier exécutable.
<NoWin32Manifest />
Quand cette option est utilisée, l’application est soumise à la virtualisation sur Windows Vista, sauf si vous fournissez un manifeste de l’application dans un fichier de ressources Win32 ou au cours d’une étape de génération ultérieure.
Dans Visual Studio, définissez cette option dans la page de propriétés Application en sélectionnant l’option Créer une application sans fichier manifeste dans la zone de liste déroulante Manifeste. Pour plus d’informations, consultez Page Application, Concepteur de projets (C#).
Ressources
Incorpore la ressource spécifiée dans le fichier de sortie.
<Resources Include=filename>
<LogicalName>identifier</LogicalName>
<Access>accessibility-modifier</Access>
</Resources>
filename
est le fichier de ressources .NET que vous voulez incorporer dans le fichier de sortie. identifier
(facultatif) est le nom logique de la ressource. Il s’agit du nom utilisé pour charger la ressource. La valeur par défaut est le nom du fichier. accessibility-modifier
(facultatif) est l’accessibilité de la ressource : publique ou privée. La valeur par défaut est public. Par défaut, les ressources sont publiques dans l’assembly quand elles sont créées à l’aide du compilateur C#. Pour rendre les ressources privées, spécifiez le modificateur d’accessibilité private
. Aucune accessibilité autre public
ou private
n’est autorisée. Si filename
est un fichier de ressources .NET créé, par exemple, par Resgen.exe ou dans l’environnement de développement, il est possible d’y accéder à l’aide des membres de l’espace de noms System.Resources. Pour plus d’informations, consultez System.Resources.ResourceManager. Pour toutes les autres ressources, utilisez les méthodes GetManifestResource
dans la classe Assembly pour accéder à la ressource au moment de l’exécution. L’ordre des ressources dans le fichier de sortie est déterminé par l’ordre spécifié dans le fichier projet.
LinkResources
Crée un lien vers une ressource .NET dans le fichier de sortie. Le fichier de ressources n’est pas ajouté au fichier de sortie. LinkResources diffère de l’option Ressource qui incorpore un fichier de ressources dans le fichier de sortie.
<LinkResources Include=filename>
<LogicalName>identifier</LogicalName>
<Access>accessibility-modifier</Access>
</LinkResources>
filename
est le fichier de ressources .NET que vous voulez lier à partir de l’assembly. identifier
(facultatif) est le nom logique de la ressource. Il s’agit du nom utilisé pour charger la ressource. La valeur par défaut est le nom du fichier. accessibility-modifier
(facultatif) est l’accessibilité de la ressource : publique ou privée. La valeur par défaut est public. Par défaut, les ressources liées sont publiques dans l’assembly quand elles sont créées avec le compilateur C#. Pour rendre les ressources privées, spécifiez le modificateur d’accessibilité private
. Aucun autre modificateur que public
ou private
n’est autorisé. Si filename
est un fichier de ressources .NET créé, par exemple, par Resgen.exe ou dans l’environnement de développement, il est possible d’y accéder à l’aide des membres de l’espace de noms System.Resources. Pour plus d’informations, consultez System.Resources.ResourceManager. Pour toutes les autres ressources, utilisez les méthodes GetManifestResource
dans la classe Assembly pour accéder à la ressource au moment de l’exécution. Le fichier spécifié dans filename
peut avoir n’importe quel format. C’est le cas, par exemple, si vous voulez qu’une DLL native fasse partie de l'assembly pour qu’elle puisse être installée dans le Global Assembly Cache et accessible à partir du code managé dans l'assembly. Vous pouvez effectuer la même opération dans Assembly Linker. Pour plus d’informations, consultez Al.exe (Assembly Linker) et Utilisation d’assemblys et du Global Assembly Cache.