Dela via


C#-kompilatoralternativ som anger resurser

Följande alternativ styr hur C#-kompilatorn skapar eller importerar Win32-resurser. Den nya MSBuild-syntaxen visas i Fetstil. Den äldre csc.exe syntaxen visas i code style.

  • Win32Resource / -win32res: Ange en Win32-resursfil (.res).
  • Win32Icon / -win32icon: Referensmetadata från den angivna sammansättningsfilen eller filerna.
  • Win32Manifest / -win32manifest: Ange en Win32-manifestfil (.xml).
  • NoWin32Manifest / -nowin32manifest: Inkludera inte win32-standardmanifestet.
  • Resurser / -resource: Bädda in den angivna resursen (kort formulär: /res).
  • LinkResources / -linkresources: Länka den angivna resursen till den här sammansättningen.

Win32Resource

Alternativet Win32Resource infogar en Win32-resurs i utdatafilen.

<Win32Resource>filename</Win32Resource>

filename är den resursfil som du vill lägga till i utdatafilen. En Win32-resurs kan innehålla information om version eller bitmapp (ikon) som hjälper dig att identifiera ditt program i Utforskaren. Om du inte anger det här alternativet genererar kompilatorn versionsinformation baserat på sammansättningsversionen.

Win32Icon

Alternativet Win32Icon infogar en .ico fil i utdatafilen, vilket ger utdatafilen önskat utseende i Utforskaren.

<Win32Icon>filename</Win32Icon>

filename är den .ico fil som du vill lägga till i utdatafilen. En .ico fil kan skapas med resurskompilatorn. Resurskompilatorn anropas när du kompilerar ett Visual C++-program. en .ico fil skapas från .rc-filen .

Win32Manifest

Använd alternativet Win32Manifest för att ange en användardefinierad Win32-programmanifestfil som ska bäddas in i ett projekts portabla körbara fil (PE).

<Win32Manifest>filename</Win32Manifest>

filename är namnet och platsen för den anpassade manifestfilen. Som standard bäddar C#-kompilatorn in ett programmanifest som anger en begärd körningsnivå för "asInvoker". Det skapar manifestet i samma mapp där den körbara filen skapas. Om du vill ange ett anpassat manifest, till exempel för att ange en begärd körningsnivå för "highestAvailable" eller "requireAdministrator", använder du det här alternativet för att ange namnet på filen.

Kommentar

Det här alternativet och alternativet Win32Resources är ömsesidigt uteslutande. Om du försöker använda båda alternativen på samma kommandorad får du ett byggfel.

Ett program som inte har något programmanifest som anger en begärd körningsnivå kommer att omfattas av fil- och registervirtualisering under funktionen User Account Control i Windows. Mer information finns i Användarkontokontroll.

Ditt program kommer att bli föremål för virtualisering om något av dessa villkor är sant:

  • Du använder alternativet NoWin32Manifest och du anger inte något manifest i ett senare byggsteg eller som en del av en Windows-resursfil (.res) med hjälp av alternativet Win32Resource .
  • Du anger ett anpassat manifest som inte anger någon begärd körningsnivå.

Visual Studio skapar en .manifest-standardfil och lagrar den i katalogerna för felsökning och version tillsammans med den körbara filen. Du kan lägga till ett anpassat manifest genom att skapa ett i valfri textredigerare och sedan lägga till filen i projektet. Du kan också högerklicka på projektikonen i Solution Explorer, välja Lägg till nytt objekt och sedan välja Programmanifestfil. När du har lagt till den nya eller befintliga manifestfilen visas den i listrutan Manifest . Mer information finns i Programsida, Projektdesigner (C#).

Du kan ange programmanifestet som ett anpassat steg efter bygget eller som en del av en Win32-resursfil med alternativet NoWin32Manifest . Använd samma alternativ om du vill att programmet ska omfattas av fil- eller registervirtualisering i Windows Vista.

NoWin32Manifest

Använd alternativet NoWin32Manifest för att instruera kompilatorn att inte bädda in något programmanifest i den körbara filen.

<NoWin32Manifest />

När det här alternativet används kommer programmet att bli föremål för virtualisering i Windows Vista om du inte anger ett programmanifest i en Win32-resursfil eller under ett senare byggsteg.

I Visual Studio anger du det här alternativet på sidan Programegenskap genom att välja alternativet Skapa program utan manifest i listrutan Manifest . Mer information finns i Programsida, Projektdesigner (C#).

Resurser

Bäddar in den angivna resursen i utdatafilen.

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

filename är den .NET-resursfil som du vill bädda in i utdatafilen. identifier (valfritt) är resursens logiska namn. namnet som används för att läsa in resursen. Standardvärdet är namnet på filen. accessibility-modifier (valfritt) är resursens tillgänglighet: offentlig eller privat. Standardvärdet är offentligt. Som standard är resurserna offentliga i sammansättningen när de skapas med hjälp av C#-kompilatorn. Om du vill göra resurserna privata anger du private som hjälpmedelsmodifierare. Ingen annan hjälpmedel än public eller private tillåts. Om filename är en .NET-resursfil som skapats, till exempel av Resgen.exe eller i utvecklingsmiljön, kan den nås med medlemmar i System.Resources namnområdet. Mer information finns i System.Resources.ResourceManager. För alla andra resurser använder du GetManifestResource metoderna i Assembly klassen för att komma åt resursen vid körning. Ordningen på resurserna i utdatafilen bestäms utifrån den ordning som anges i projektfilen.

LinkResources

Skapar en länk till en .NET-resurs i utdatafilen. Resursfilen läggs inte till i utdatafilen. LinkResources skiljer sig från alternativet Resurs, som bäddar in en resursfil i utdatafilen.

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

filename är den .NET-resursfil som du vill länka till från sammansättningen. identifier (valfritt) är resursens logiska namn. namnet som används för att läsa in resursen. Standardvärdet är namnet på filen. accessibility-modifier (valfritt) är resursens tillgänglighet: offentlig eller privat. Standardvärdet är offentligt. Som standard är länkade resurser offentliga i sammansättningen när de skapas med C#-kompilatorn. Om du vill göra resurserna privata anger du private som hjälpmedelsmodifierare. Ingen annan modifierare än public eller private tillåts. Om filename är en .NET-resursfil som skapats, till exempel av Resgen.exe eller i utvecklingsmiljön, kan den nås med medlemmar i System.Resources namnområdet. Mer information finns i System.Resources.ResourceManager. För alla andra resurser använder du GetManifestResource metoderna i Assembly klassen för att komma åt resursen vid körning. Filen som anges i filename kan vara valfritt format. Du kanske till exempel vill göra en intern DLL-del av sammansättningen, så att den kan installeras i den globala sammansättningscache och nås från hanterad kod i sammansättningen. Du kan göra samma sak i Assembly Linker. Mer information finns i Al.exe (Assembly Linker) och Working with Assemblies and the Global Assembly Cache (Arbeta med sammansättningar och global sammansättningscache).