Programmanifest
Ett programmanifest (även kallat ett programmanifest sida vid sida eller ett fusion manifest) är en XML-fil som beskriver och identifierar de delade och privata sammansättningar sida vid sida som ett program ska binda till vid körning. Dessa bör vara samma sammansättningsversioner som användes för att testa programmet. Programmanifest kan också beskriva metadata för filer som är privata för programmet.
En fullständig lista över XML-schemat finns i manifestfilschema.
Programmanifest har följande element och attribut.
Element | Attribut | Krävs |
---|---|---|
sammansättning | Ja | |
manifestVersion | Ja | |
noInherit | Nej | |
assemblyIdentity | Ja | |
typ | Ja | |
namn | Ja | |
språk | Nej | |
processorArchitecture | Nej | |
version | Ja | |
publicKeyToken | Nej | |
kompatibilitet | Nej | |
program | Nej | |
OS- som stöds | Nej | |
ID | Ja | |
maxversiontestad | Nej | |
ID | Ja | |
beroende | Nej | |
beroendeAssembly | Nej | |
fil | Nej | |
namn | Ja | |
hashalg | Nej | |
hash- | Nej | |
activatableClass | Nej | |
namn | Ja | |
threadingModel | Ja | |
activeCodePage- | Nej | |
autoElevate | Nej | |
inaktiveraDet | Nej | |
inaktiveraWindowFiltering- | Nej | |
dpiAware | Nej | |
dpiAwareness | Nej | |
gdiScaling | Nej | |
highResolutionScrollingAware | Nej | |
longPathAware | Nej | |
printerDriverIsolation | Nej | |
ultraHighResolutionScrollingAware | Nej | |
msix | Nej | |
heapType | Nej | |
stödsArchitectures | Nej | |
trustInfo | Nej |
Filplats
Om möjligt bör du bädda in programmanifestet som en resurs i programmets .exe
-fil eller .dll
. Om du inte kan göra det kan du placera programmanifestfilen i samma katalog som .exe
eller .dll
.
Mer information finns i Installera sida vid sida-sammansättningar.
Filnamn
Enligt konventionen ska ett programmanifest ha samma namn som appens körbara fil, med det .manifest
tillägg som läggs till.
Ett programmanifest som refererar till example.exe
eller example.dll
bör till exempel använda följande filnamnssyntax (om resurs-ID är 1 kan du utelämna <resurs-ID> segment av syntaxen).
example.exe.<resurs-ID>.manifest
example.dll.<resurs-ID>.manifest
Element
Namn på element och attribut är skiftlägeskänsliga. Värdena för element och attribut är skiftlägesokänsliga, förutom värdet för typattributet.
församling
Ett containerelement. Dess första underelement måste vara ett noInherit eller assemblyIdentity element. Krävs.
Elementet sammansättning måste finnas i namnområdet urn:schemas-microsoft-com:asm.v1
. Underordnade element i sammansättningen måste också finnas i det här namnområdet, genom arv eller genom taggning.
Elementet sammansättning har följande attribut.
Attribut | Beskrivning |
---|---|
manifestVersion | Attributet manifestVersion måste anges till 1.0 . |
noInherit
Inkludera det här elementet i ett programmanifest för att ange aktiveringskontexter genereras från manifestet med flaggan "no inherit". När den här flaggan inte anges i en aktiveringskontext och aktiveringskontexten ärvs av nya trådar i samma process, fönster, fönsterprocedurer och Asynkrona proceduranrop. Om du anger den här flaggan hindras det nya objektet från att ärva den aktiva kontexten.
Elementet noInherit är valfritt och utelämnas vanligtvis. De flesta sammansättningar fungerar inte korrekt med en no-inherit-aktiveringskontext eftersom sammansättningen uttryckligen måste utformas för att hantera spridningen av sin egen aktiveringskontext. Användningen av elementet noInherit kräver att alla beroende sammansättningar som refereras av programmanifestet har ett noInherit- element i sitt sammansättningsmanifest.
Om noInherit används i ett manifest måste det vara det första underelementet i sammansättning element. Elementet assemblyIdentity bör komma omedelbart efter elementet noInherit. Om noInherit inte används måste assemblyIdentity vara det första underelementet i sammansättning element. Elementet noInherit har inga underordnade element. Det är inte ett giltigt element i sammansättningsmanifest.
assemblyIdentity
Som det första underelementet i en sammansättning element beskriver assemblyIdentity och identifierar det program som äger det här programmanifestet unikt. Som det första underelementet i ett beroendeAssembly- element beskriver assemblyIdentity en sida-vid-sida-sammansättning som krävs av programmet. Observera att varje sammansättning som refereras till i programmanifestet kräver en assemblyIdentity som exakt matchar assemblyIdentity i den refererade sammansättningens eget sammansättningsmanifest.
Elementet assemblyIdentity har följande attribut. Den har inga underelement.
Attribut | Beskrivning |
---|---|
typ | Anger program- eller sammansättningstyp. Värdet måste vara win32 och allt i gemener. Krävs. |
namn | Namnger programmet eller sammansättningen unikt. Använd följande format för namnet: Organization.Division.Name . Till exempel Microsoft.Windows.mysampleApp . Krävs. |
språk | Identifierar språket för programmet eller sammansättningen. Om programmet eller sammansättningen är språkspecifik anger du DHTML-språkkoden. I assemblyIdentity för ett program som är avsett för global användning (språkneutral) utelämnar språkattributet. I en assemblyIdentity för en sammansättning som är avsedd för världsomspännande användning (språkneutral) anger du värdet för språket till * . Valfri. |
processorArchitecture | Anger processorn. Giltiga värden är x86 , amd64 , arm och arm64 . Du kan också ange * , vilket säkerställer att alla plattformar är riktade. Valfri. |
version | Anger program- eller sammansättningsversionen. Använd versionsformatet i fyra delar: mmmmm.nnnnn.ooooo.ppppp . Var och en av delarna avgränsas med perioder kan vara 0-65535 inklusive. Mer information finns i sammansättningsversioner. Krävs. |
publicKeyToken | En hexadecimal sträng på 16 tecken som representerar de sista 8 byteen av SHA-1-hashen för den offentliga nyckeln under vilken programmet eller sammansättningen är signerad. Den offentliga nyckel som används för att signera katalogen måste vara 2 048 bitar eller större. Krävs för alla delade sammansättningar sida vid sida. |
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
...
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
...
</assembly>
kompatibilitet
Innehåller minst en program. Den har inga attribut. Valfri. Programmanifest utan ett kompatibilitetselement är standard för Windows Vista-kompatibilitet i Windows 7.
Elementet kompatibilitet måste finnas i namnområdet urn:schemas-microsoft-com:compatibility.v1
. Underordnade element i kompatibilitet måste också finnas i det här namnområdet, genom arv eller genom taggning.
tillämpning
Innehåller minst en os- element som stöds. Från och med Windows 10, version 1903, kan det också innehålla ett valfritt maxversiontestade element. Den har inga attribut. Valfri.
stödsOS
Elementet OS som stöds har följande attribut. Den har inga underelement.
Attribut | Beskrivning |
---|---|
ID | Ange ID-attributet till {e2011457-1546-43c5-a5fe-008deee3d3f0} för att köra programmet med hjälp av Vista-funktioner. Detta kan göra det möjligt för ett program som är utformat för Windows Vista att köras på ett senare operativsystem. Ange ID-attributet till {35138b9a-5d96-4fbd-8e2d-a2440225f93a} för att köra programmet med windows 7-funktioner. Program som stöder Windows Vista, Windows 7 och Windows 8-funktioner kräver inte separata manifest. I det här fallet lägger du till GUID:erna för alla Windows-operativsystem. Information om beteendet för -ID attribut i Windows finns i Windows 8 och Windows Server 2012 Compatibility Cookbook. Följande GUID motsvarar de angivna operativsystemen: {8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a} –> Windows 10, Windows 11, Windows Server 2016, Windows Server 2019 och Windows Server 2022 {1f676c76-80e1-4239-95bb-83d0f6d0da78} –> Windows 8.1 och Windows Server 2012 R2 {4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38} –> Windows 8 och Windows Server 2012 {35138b9a-5d96-4fbd-8e2d-a2440225f93a} –> Windows 7 och Windows Server 2008 R2 {e2011457-1546-43c5-a5fe-008deee3d3f0} –> Windows Vista och Windows Server 2008 Du kan testa detta på Windows 7 eller Windows 8.x genom att köra Resource Monitor (resmon), gå till fliken CPU, högerklicka på kolumnetiketterna, "Välj kolumn..." och kontrollera "Operativsystemkontext". I Windows 8.x hittar du även den här kolumnen i Aktivitetshanteraren (taskmgr). Innehållet i kolumnen visar det högsta värde som hittats eller "Windows Vista" som standard. |
maxversiontestad
Det maxversiontestade-elementet anger vilka versioner av Windows som programmet testades mot från och med den lägsta operativsystemversion som programmet stöder upp till den högsta versionen. Den fullständiga uppsättningen versioner finns här. Detta är avsett att användas av skrivbordsprogram som använder XAML Islands och som inte distribueras i ett MSIX-paket. Det här elementet stöds i Windows 10, version 1903 och senare versioner.
Elementet maxversiontested har följande attribut. Den har inga underelement.
Attribut | Beskrivning |
---|---|
ID | Ange ID-attributet till en 4-delsversionssträng som anger den maximala versionen av Windows som programmet testades mot. Till exempel "10.0.18362.1" för Windows 10, version 1903. Krävs. |
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
...
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10, version 1903 -->
<maxversiontested Id="10.0.18362.1"/>
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>
</compatibility>
...
</assembly>
beroende
Innehåller minst en beroendeAssembly-. Den har inga attribut. Valfri.
dependentAssembly
Det första underelementet i beroendeAssembly- måste vara ett assemblyIdentity element som beskriver en sida-vid-sida-sammansättning som krävs av programmet. Varje beroendeAssembly måste finnas i exakt ett beroende. Den har inga attribut.
fil
Anger filer som är privata för programmet. Valfri.
-filen-elementet har attributen som visas i följande tabell.
Attribut | Beskrivning |
---|---|
namn | Namnet på filen. Till exempel Comctl32.dll. Krävs. |
hashalg | Algoritm som används för att skapa en hash för filen. Det här värdet ska vara SHA1. Valfri. |
hash- | En hash för filen som refereras till med namn. En hexadecimal sträng med längd beroende på hash-algoritmen. Valfri. |
activatableClass
Tillåter att icke-paketerade skrivbordsappar använder användardefinierade WinRT-komponenter (Windows Runtime). Det här elementet stöds i Windows 10, version 1903 och senare versioner. Mer information finns i den här artikeln.
Elementet activatableClass måste finnas i namnområdet urn:schemas-microsoft-com:winrt.v1
.
Elementet activatableClass har följande attribut.
Attribut | Beskrivning |
---|---|
namn | Anger klassidentifieraren för den aktiverbara klassen. Krävs. |
threadingModel | Representerar den lägenhetstrådningsmodell som ska användas för att aktivera en processerver. Giltiga värden är both , STA eller MTA . Mer information finns i den här artikeln. Krävs. |
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
...
<file name="WinRTComponent.dll">
<activatableClass
name="WinRTComponent.MessageHolder"
threadingModel="both"
xmlns="urn:schemas-microsoft-com:winrt.v1"
/>
</file>
...
</assembly>
activeCodePage
I Windows 10 tvingar det här elementet en process att använda UTF-8 som processkodsida. Mer information finns i Använd kodsidan UTF-8. I Windows 10 är det enda giltiga värdet för activeCodePageUTF-8.
Från och med Windows 11 tillåter det här elementet också val av antingen den äldre kodsidan som inte är UTF-8 eller kodsidor för ett specifikt språk för äldre programkompatibilitet. Moderna program uppmuntras starkt att använda Unicode. I Windows 11 kan activeCodePage- också anges till värdet Äldre eller ett språknamn som en-US eller ja-JP.
- På datorer som har konfigurerats till en utf-8-systemaktiv kodsida återställer äldre processen till kodsidorna för systemspråk. Om systemspråket inte har definierade kodsidor används Windows-1252/437. Inställningen Äldre-kodsida stöds endast i Fusion-manifest och börjar bara med Windows 11.
- När ett språknamn, till exempel en-US, anges processkodsidan på lämpligt sätt för språkkodsidan. Till exempel Windows-1252 och 437 för en-US, eller 932 för ja-JP.
Det här elementet lades först till i Windows 10 version 1903 (maj 2019 Update). Du kan deklarera den här egenskapen och mål/köra på tidigare Windows-versioner, men du måste hantera äldre identifiering och konvertering av kodsidor som vanligt. Det här elementet har inga attribut.
I följande exempel visas hur du använder det här elementet för att tvinga den aktuella processen att använda UTF-8 som processkodsida.
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
...
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">
<activeCodePage>UTF-8</activeCodePage>
</asmv3:windowsSettings>
</asmv3:application>
...
</assembly>
autoElevate
Anger om automatisk upphöjning är aktiverat. TRUE anger att den är aktiverad. Den har inga attribut. Den körbara filen måste signeras digitalt av Windows Publisher. För internt bruk.
disableTheming
Anger om det är inaktiverat att ge gränssnittselement ett tema. TRUE- anger inaktiverad. Den har inga attribut.
disableWindowFiltering
Anger om fönsterfiltrering ska inaktiveras. TRUE inaktiverar fönsterfiltrering så att du kan räkna upp uppslukande fönster från skrivbordet. inaktiveraWindowFiltering lades till i Windows 8 och har inga attribut.
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
...
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2011/WindowsSettings">
<disableWindowFiltering>true</disableWindowFiltering>
</asmv3:windowsSettings>
</asmv3:application>
...
</assembly>
dpiAware
Anger om den aktuella processen är medveten om punkter per tum (dpi).
Windows 10 version 1607: Elementet dpiAware ignoreras om elementet dpiAwareness finns. Du kan inkludera båda elementen i ett manifest om du vill ange ett annat beteende för Windows 10, version 1607 än för en tidigare version av operativsystemet.
I följande tabell beskrivs det beteende som resulterar baserat på förekomsten av dpiAware--element och den text som den innehåller. Texten i elementet är inte skiftlägeskänslig.
Status för elementet dpiAware | Beskrivning |
---|---|
Frånvarande | Den aktuella processen är dpi omedveten som standard. Du kan programmatiskt ändra den här inställningen genom att anropa funktionen SetProcessDpiAwareness eller SetProcessDPIAware. |
Innehåller "true" | Den aktuella processen är system-dpi-medveten. |
Innehåller "false" |
Windows Vista, Windows 7 och Windows 8: Beteendet är detsamma som när dpiAware saknas. Windows 8.1 och Windows 10: Den aktuella processen är dpi omedveten och du kan inte programmatiskt ändra den här inställningen genom att anropa funktionen SetProcessDpiAwareness eller SetProcessDPIAware. |
Innehåller "true/pm" |
Windows Vista, Windows 7 och Windows 8: Den aktuella processen är system-DPI-medveten. Windows 8.1 och Windows 10: Den aktuella processen är dpi-medveten per övervakare. |
Innehåller "per övervakare" |
Windows Vista, Windows 7 och Windows 8: Beteendet är detsamma som när dpiAware saknas. Windows 8.1 och Windows 10: Den aktuella processen är dpi-medveten per övervakare. |
Innehåller alla andra strängar |
Windows Vista, Windows 7 och Windows 8: Beteendet är detsamma som när dpiAware saknas. Windows 8.1 och Windows 10: Den aktuella processen är dpi omedveten och du kan inte programmatiskt ändra den här inställningen genom att anropa funktionen SetProcessDpiAwareness eller SetProcessDPIAware. |
Mer information om inställningar för dpi-medvetenhet finns i High DPI Desktop Application Development on Windows.
dpiAware har inga attribut.
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
...
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
...
</assembly>
dpiAwareness
Anger om den aktuella processen är medveten om punkter per tum (dpi).
Den lägsta versionen av operativsystemet som stöder dpiAwareness-elementet är Windows 10, version 1607. För versioner som stöder elementet dpiAwareness åsidosätter dpiAwareness elementet dpiAware. Du kan inkludera båda elementen i ett manifest om du vill ange ett annat beteende för Windows 10, version 1607 än för en tidigare version av operativsystemet.
Elementet dpiAwareness kan innehålla ett enda objekt eller en lista med kommaavgränsade objekt. I det senare fallet används det första objektet (längst till vänster) i listan som identifieras av operativsystemet. På så sätt kan du ange olika beteenden som stöds i framtida Versioner av Windows-operativsystemet.
I följande tabell beskrivs det beteende som resulterar baserat på förekomsten av dpiAwareness element och den text som det innehåller i det objekt som känns igen längst till vänster. Texten i elementet är inte skiftlägeskänslig.
dpiAwareness elementstatus: | Beskrivning |
---|---|
Elementet saknas | Elementet dpiAware anger om processen är dpi-medveten. |
Innehåller inga identifierade objekt | Den aktuella processen är dpi omedveten som standard. Du kan programmatiskt ändra den här inställningen genom att anropa funktionen SetProcessDpiAwareness eller SetProcessDPIAware. |
Det första identifierade objektet är "system" | Den aktuella processen är system-dpi-medveten. |
Det första identifierade objektet är "permonitor" | Den aktuella processen är dpi-medveten per övervakare. |
Det första identifierade objektet är "permonitorv2" | Den aktuella processen använder dpi-medvetenhetskontexten per monitor-v2. Det här objektet identifieras endast i Windows 10 version 1703 eller senare. |
Det första identifierade objektet är "omedvetet" | Den aktuella processen är dpi omedveten. Du kan inte ändra den här inställningen programmatiskt genom att anropa funktionen SetProcessDpiAwareness eller SetProcessDPIAware. |
Mer information om inställningar för dpi-medvetenhet som stöds av det här elementet finns i DPI_AWARENESS och DPI_AWARENESS_CONTEXT.
dpiAwareness inte har några attribut.
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
...
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
<dpiAwareness>PerMonitorV2, unaware</dpiAwareness>
</asmv3:windowsSettings>
</asmv3:application>
...
</assembly>
gdiScaling
Anger om GDI-skalning är aktiverat. Den lägsta versionen av operativsystemet som stöder gdiScaling-elementet är Windows 10 version 1703.
GDI-ramverket (grafikenhetsgränssnittet) kan tillämpa DPI-skalning på primitiver och text per övervakare utan uppdateringar av själva programmet. Detta kan vara användbart för GDI-program som inte längre uppdateras aktivt.
Icke-vektorgrafik (till exempel bitmappar, ikoner eller verktygsfält) kan inte skalas av det här elementet. Dessutom kan grafik och text som visas i bitmappar dynamiskt konstruerade av program inte heller skalas av det här elementet. Mer information finns i Förbättra funktionen för hög DPI i GDI-baserade Skrivbordsappar.
Du kan programmatiskt ändra den här inställningen genom att anropa funktionen SetThreadDpiAwarenessContext eller SetProcessDpiAwarenessContext med DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED
värde.
TRUE anger att det här elementet är aktiverat. Den har inga attribut.
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
...
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2017/WindowsSettings">
<gdiScaling>true</gdiScaling>
</asmv3:windowsSettings>
</asmv3:application>
...
</assembly>
highResolutionScrollingAware
Anger om högupplösningsrullning är aktiverat. TRUE anger att den är aktiverad. Den har inga attribut.
longPathAware
Aktiverar långa sökvägar som överskrider MAX_PATH i längd. Det här elementet stöds i Windows 10, version 1607 och senare. Mer information finns i den här artikeln.
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
...
<asmv3:application>
<asmv3:windowsSettings xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
<ws2:longPathAware>true</ws2:longPathAware>
</asmv3:windowsSettings>
</asmv3:application>
...
</assembly>
printerDriverIsolation
Anger om isolering av skrivardrivrutin är aktiverat. TRUE anger att den är aktiverad. Den har inga attribut. Isolering av skrivardrivrutiner förbättrar tillförlitligheten för Windows-utskriftstjänsten genom att göra det möjligt för skrivardrivrutiner att köras i processer som är separata från den process där utskriftshanteraren körs. Stöd för isolering av skrivardrivrutiner startades i Windows 7 och Windows Server 2008 R2. En app kan deklarera isolering av skrivardrivrutinen i sitt appmanifest för att isolera sig från skrivardrivrutinen och förbättra dess tillförlitlighet. Appen kraschar alltså inte om skrivardrivrutinen har ett fel.
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
...
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2011/WindowsSettings">
<printerDriverIsolation>true</printerDriverIsolation>
</asmv3:windowsSettings>
</asmv3:application>
...
</assembly>
ultraHighResolutionScrollingAware
Anger om ultrahög upplösningsrullning är aktiverat. TRUE anger att den är aktiverad. Den har inga attribut.
msix
Anger identitetsinformationen för ett paket med extern plats för det aktuella programmet (se Bevilja paketidentitet genom att paketera med extern plats). Det här elementet stöds i Windows 10, version 2004 och senare versioner.
Elementet msix måste finnas i namnområdet urn:schemas-microsoft-com:msix.v1
. Den har attributen som visas i följande tabell.
Attribut | Beskrivning |
---|---|
utgivare | Beskriver utgivarens information. Det här värdet måste matcha attributet Publisher i elementet Identity i paketmanifestet för din paketerade app med extern plats. |
packageName | Beskriver innehållet i paketet. Det här värdet måste matcha attributet Name i elementet Identity i paketmanifestet för din paketerade app med extern plats. |
applicationId | Programmets unika identifierare. Det här värdet måste matcha attributet ID i elementet Application i paketmanifestet för din paketerade app med extern plats. |
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="Contoso.PhotoStoreApp"/>
<msix xmlns="urn:schemas-microsoft-com:msix.v1"
publisher="CN=Contoso"
packageName="ContosoPhotoStore"
applicationId="ContosoPhotoStore"
/>
</assembly>
heapType
Åsidosätter standardimplementeringen av heap för Win32-api:er för heap att använda.
- Värdet SegmentHeap anger att segment-heap ska användas. Segment heap är en modern heap-implementering som i allmänhet minskar din totala minnesanvändning. Det här elementet stöds i Windows 10, version 2004 (version 19041) och senare.
- Alla andra värden ignoreras.
Det här elementet har inga attribut.
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
...
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2020/WindowsSettings">
<heapType>SegmentHeap</heapType>
</asmv3:windowsSettings>
</asmv3:application>
...
</assembly>
supportedArchitectures
För il-only .NET Framework-körbara filer anger en lista över inbyggda processorarkitekturer som programmet är kompatibelt med. Kan innehålla ett eller flera av följande värden, avgränsade med blanksteg:
- amd64
- arm64
Det här elementet har inga attribut.
Det här elementet stöds i Windows 11, version 24H2 och senare.
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
...
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2024/WindowsSettings">
<supportedArchitectures>amd64 arm64</supportedArchitectures>
</asmv3:windowsSettings>
</asmv3:application>
...
</assembly>
trustInfo
Alla UAC-kompatibla appar ska ha en begärd körningsnivå som läggs till i programmanifestet. Begärda körningsnivåer anger de behörigheter som krävs för en app. Mer information finns i How User Account Control (UAC) Affects Your Application.
Den begärda körningsnivån anges med attributet nivå för requestedExecutionLevel underordnade elementet trustInfo. Tillåtna värden för nivå är:
Värde | Beskrivning |
---|---|
asInvoker | Programmet körs på samma behörighetsnivå som processen som startade det. Du kan höja programmet till en högre behörighetsnivå genom att välja Kör som administratör. |
kräver | Programmet körs med administratörsbehörigheter. Användaren som startar programmet måste vara medlem i gruppen Administratörer. Om öppningsprocessen inte körs med administrativa behörigheter uppmanas systemet att ange autentiseringsuppgifter. |
högstatillgängliga | Programmet körs på den högsta behörighetsnivå som det kan. Om användaren som startar programmet är medlem i gruppen Administratörer är det här alternativet detsamma som level="requireAdministrator" . Om den högsta tillgängliga behörighetsnivån är högre än nivån för öppningsprocessen uppmanas systemet att ange autentiseringsuppgifter. |
Om du ställer in nivån på highestAvailable
ser du till att programmet körs med både användare som är medlemmar i gruppen Administratörer och de som inte är det. Om programmet bara kan fungera med administrativ åtkomst till systemet kan du markera appen med en begärd körningsnivå på requireAdministrator
ser till att systemet identifierar det här programmet som en administrativ app och utför nödvändiga utökade steg.
Som standard bäddar Visual C++-länkaren in ett UAC-fragment i manifestet för ett program med körningsnivån asInvoker
.
Elementet requestedExecutionLevel har också ett valfritt attribut uiAccess. Ange det här värdet till true
om du vill att programmet ska kringgå användargränssnittets skyddsnivåer och köra indata till fönster med högre behörighet på skrivbordet. Ange det här attributet till true
endast för hjälpmedelsprogram för användargränssnittet. Standardvärdet är false
. Ytterligare begränsningar från säkerhetsprincipinställningar kan tillämpas, se User Account Control: Endast höja UIAccess-program som är installerade på säkra platser. Mer information finns i säkerhetsöverväganden för hjälpmedelstekniker.
Om du anger requestedExecutionLevel nod inaktiveras fil- och registervirtualisering. Om du vill använda fil- och registervirtualisering för bakåtkompatibilitet utelämnar du noden requestedExecutionLevel.
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
Exempel
Följande är ett exempel på ett programmanifest för ett program med namnet MySampleApp.exe. Programmet använder sammansättningen SampleAssembly sida vid sida.
<?xml version="1.0" encoding="UTF-8"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32" name="MyOrganization.MyDivision.MySampleApp" version="6.0.0.0" processorArchitecture="*" />
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Proseware.Research.SampleAssembly" version="6.0.0.0" processorArchitecture="*" publicKeyToken="0000000000000000" />
</dependentAssembly>
</dependency>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 and Windows 11 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
<!-- Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />
</application>
</compatibility>
</assembly>