Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Manifest aplikacji (znany również jako manifest aplikacji równoległej lub manifest łączenia ) to plik XML, który opisuje i identyfikuje współużytkowane i prywatne zestawy równoległe, z którymi aplikacja powinna powiązać w czasie wykonywania. Powinny to być te same wersje zestawów, które były używane do testowania aplikacji. Manifesty aplikacji mogą również opisywać metadane dla plików, które są prywatne dla aplikacji.
Aby uzyskać pełną listę schematu XML, zobacz Schemat pliku manifestu.
Manifesty aplikacji mają następujące elementy i atrybuty.
Składnik | Atrybuty | Wymagane |
---|---|---|
montaż | Tak | |
manifestVersion | Tak | |
noInherit | Nie. | |
assemblyIdentity | Tak | |
typ | Tak | |
name | Tak | |
języka | Nie. | |
processorArchitecture | Nie. | |
wersja | Tak | |
publicKeyToken | Nie. | |
zgodność | Nie. | |
aplikacja | Nie. | |
obsługiwany systemOS | Nie. | |
Id | Tak | |
maxversiontestowane | Nie. | |
Id | Tak | |
zależność | Nie. | |
dependentAssembly | Nie. | |
pliku | Nie. | |
name | Tak | |
hashalg | Nie. | |
skrótu | Nie. | |
aktywowanaklasa | Nie. | |
name | Tak | |
threadingModel | Tak | |
activeCodePage | Nie. | |
autoElevate | Nie. | |
disableTheming | Nie. | |
disableWindowFiltering | Nie. | |
dpiAware | Nie. | |
dpiAwareness | Nie. | |
gdiScaling | Nie. | |
highResolutionScrollingAware | Nie. | |
longPathAware | Nie. | |
printerDriverIsolation | Nie. | |
ultraHighResolutionScrollingAware | Nie. | |
msix | Nie. | |
heapType | Nie. | |
supportedArchitectures | Nie. | |
trustInfo | Nie. |
Lokalizacja pliku
Jeśli to możliwe, należy osadzić manifest aplikacji jako zasób w pliku aplikacji .exe
lub .dll
. Jeśli nie możesz tego zrobić, możesz umieścić plik manifestu aplikacji w tym samym katalogu co plik .exe
lub .dll
.
Aby uzyskać więcej informacji, zobacz Instalowanie zestawów równoległych.
Nazwa pliku
Zgodnie z konwencją manifest aplikacji powinien mieć taką samą nazwę jak plik wykonywalny aplikacji, z .manifest
rozszerzeniem dołączonym do niego.
Na przykład manifest aplikacji, który odwołuje się do example.exe
lub example.dll
powinien używać następującej składni nazwy pliku (jeśli identyfikator zasobu to 1, możesz pominąć < segment identyfikatora> zasobu składni).
example.exe.<>identyfikator zasobu. manifest
example.dll.<>identyfikator zasobu. manifest
Pierwiastki
W nazwach elementów i atrybutów uwzględniana jest wielkość liter. Wartości elementów i atrybutów są bez uwzględniania wielkości liter, z wyjątkiem wartości atrybutu typu.
montaż
Element kontenera. Jego pierwszy podelement musi być elementem noInherit lub assemblyIdentity . To jest wymagane.
Element zestawu musi znajdować się w przestrzeni nazw urn:schemas-microsoft-com:asm.v1
. Elementy podrzędne zestawu muszą również znajdować się w tej przestrzeni nazw przez dziedziczenie lub tagowanie.
Element zestawu ma następujące atrybuty.
[No changes needed]) | Opis |
---|---|
manifestVersion | Atrybut manifestVersion musi być ustawiony na 1.0 . |
noInherit
Uwzględnij ten element w manifeście aplikacji, aby ustawić konteksty aktywacji wygenerowane na podstawie manifestu z flagą "brak dziedziczenia". Jeśli ta flaga nie jest ustawiona w kontekście aktywacji, a kontekst aktywacji jest aktywny, jest dziedziczony przez nowe wątki w tym samym procesie, oknach, procedurach okien i wywołaniach procedury asynchronicznej. Ustawienie tej flagi uniemożliwia dziedziczenie aktywnego kontekstu przez nowy obiekt.
Element noInherit jest opcjonalny i zwykle pomijany. Większość zestawów nie działa poprawnie przy użyciu kontekstu aktywacji bez dziedziczenia, ponieważ zestaw musi być jawnie zaprojektowany do zarządzania propagacją własnego kontekstu aktywacji. Użycie elementu noInherit wymaga, aby wszystkie zależne zestawy, do których odwołuje się manifest aplikacji, miały element noInherit w manifeście zestawu.
Jeśli element noInherit jest używany w manifeście, musi być pierwszym elementem podrzędnym elementu zestawu . Element assemblyIdentity powinien pojawić się natychmiast po elemecie noInherit . Jeśli parametr noInherit nie jest używany, element assemblyIdentity musi być pierwszym elementem podrzędnym elementu zestawu . Element noInherit nie ma elementów podrzędnych. Nie jest to prawidłowy element w manifestach zestawu.
assemblyIdentity
Jako pierwszy podelement elementu zestawu , assemblyIdentity opisuje i jednoznacznie identyfikuje aplikację będącą właścicielem tego manifestu aplikacji. Jako pierwszy podelement elementu dependentAssembly , assemblyIdentity opisuje zestaw równoległy wymagany przez aplikację. Należy pamiętać, że każdy zestaw, do którego odwołuje się manifest aplikacji, wymaga elementu assemblyIdentity , który dokładnie pasuje do elementu assemblyIdentity we własnym manifeście zestawu, do którego odwołuje się zestaw.
Element assemblyIdentity ma następujące atrybuty. Nie ma żadnych podelementów.
[No changes needed]) | Opis |
---|---|
typ | Określa typ aplikacji lub zestawu. Wartość musi być win32 i wszystkie w małych literach. To jest wymagane. |
name | Unikatowe nazwy aplikacji lub zestawu. Użyj następującego formatu dla nazwy: Organization.Division.Name . Na przykład: Microsoft.Windows.mysampleApp . To jest wymagane. |
języka | Określa język aplikacji lub zestawu. Jeśli aplikacja lub zestaw jest specyficzny dla języka, określ kod języka DHTML. W assemblyIdentity aplikacji przeznaczonej do użytku na całym świecie (neutralny język) pomija atrybut języka. W zestawieDentity zestawu przeznaczonego do użytku na całym świecie (neutralny język) ustaw wartość języka na * . Opcjonalny. |
processorArchitecture | Określa procesor. Prawidłowe wartości to x86 , amd64 arm i arm64 . Można również określić * wartość , która gwarantuje, że wszystkie platformy są docelowe. Opcjonalny. |
wersja | Określa wersję aplikacji lub zestawu. Użyj czteroczęściowego formatu wersji: mmmmm.nnnnn.ooooo.ppppp . Każda z części rozdzielonych kropkami może wynosić od 0 do 65535 włącznie. Aby uzyskać więcej informacji, zobacz wersje zestawów. To jest wymagane. |
publicKeyToken | 16-znakowy ciąg szesnastkowy reprezentujący ostatnie 8 bajtów skrótu SHA-1 klucza publicznego, w ramach którego jest podpisana aplikacja lub zestaw. Klucz publiczny używany do podpisywania wykazu musi mieć wartość 2048 bitów lub większą. Wymagane dla wszystkich współdzielonych zestawów równoległych. |
<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>
zgodność
Zawiera co najmniej jedną aplikację. Nie ma atrybutów. Opcjonalny. Manifesty aplikacji bez domyślnego elementu zgodności z systemem Windows Vista w systemie Windows 7.
Element zgodności musi znajdować się w przestrzeni nazw urn:schemas-microsoft-com:compatibility.v1
. Elementy podrzędne zgodności muszą również znajdować się w tej przestrzeni nazw przez dziedziczenie lub tagowanie.
aplikacja
Zawiera co najmniej jeden obsługiwany element systemuOS . Począwszy od systemu Windows 10, wersja 1903, może również zawierać jeden opcjonalny element maxversiontest . Nie ma atrybutów. Opcjonalny.
obsługiwany systemOS
Obsługiwany element systemuOS ma następujący atrybut. Nie ma żadnych podelementów.
[No changes needed]) | Opis |
---|---|
Id | Ustaw atrybut Id na {e2011457-1546-43c5-a5fe-008deee3d3f0} , aby uruchomić aplikację przy użyciu funkcji Vista. Może to umożliwić uruchamianie aplikacji przeznaczonej dla systemu Windows Vista w nowszym systemie operacyjnym. Ustaw atrybut Id na {35138b9a-5d96-4fbd-8e2d-a2440225f93a} , aby uruchomić aplikację przy użyciu funkcji systemu Windows 7. Aplikacje, które obsługują funkcje systemu Windows Vista, Windows 7 i Windows 8, nie wymagają oddzielnych manifestów. W tym przypadku dodaj identyfikatory GUID dla wszystkich systemów operacyjnych Windows. Aby uzyskać informacje o zachowaniu atrybutu identyfikatora w systemie Windows, zobacz Podręcznik zgodności systemów Windows 8 i Windows Server 2012. Następujące identyfikatory GUID odpowiadają wskazanym systemom operacyjnym: {8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a} —> Windows 10, Windows 11, Windows Server 2016, Windows Server 2019 i Windows Server 2022 {1f676c76-80e1-4239-95bb-83d0f6d0da78} —> Windows 8.1 i Windows Server 2012 R2 {4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38} —> Windows 8 i Windows Server 2012 {35138b9a-5d96-4fbd-8e2d-a2440225f93a} —> Windows 7 i Windows Server 2008 R2 {e2011457-1546-43c5-a5fe-008deee3d3f0} —> Windows Vista i Windows Server 2008 Można to przetestować w systemie Windows 7 lub Windows 8.x, uruchamiając monitor zasobów (resmon), przechodząc do karty procesora CPU, klikając prawym przyciskiem myszy etykiety kolumn, "Wybierz kolumnę...", i zaznaczając pozycję "Kontekst systemu operacyjnego". W systemie Windows 8.x można również znaleźć tę kolumnę dostępną w Menedżerze zadań (taskmgr). Zawartość kolumny pokazuje najwyższą wartość znalezioną lub "Windows Vista" jako domyślną. |
maxversiontestowane
Maxversiontest element określa wersje systemu Windows, które aplikacja została przetestowana przed rozpoczęciem od minimalnej wersji systemu operacyjnego, którą aplikacja obsługuje do maksymalnej wersji. Pełny zestaw wersji można znaleźć tutaj. Ma to być używane przez aplikacje klasyczne korzystające z wysp XAML i nie są wdrażane w pakiecie MSIX. Ten element jest obsługiwany w systemie Windows 10 w wersji 1903 i nowszych.
Element maxversiontest ma następujący atrybut. Nie ma żadnych podelementów.
[No changes needed]) | Opis |
---|---|
Id | Ustaw atrybut Id na 4-częściowy ciąg wersji, który określa maksymalną wersję systemu Windows, z którą aplikacja została przetestowana. Na przykład "10.0.18362.1" dla systemu Windows 10 w wersji 1903. To jest wymagane. |
<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>
zależność
Zawiera co najmniej jedną zależnośćAssembly. Nie ma atrybutów. Opcjonalny.
dependentAssembly
Pierwszy podelement elementu dependentAssembly musi być elementem assemblyIdentity opisujący zestaw równoległy wymagany przez aplikację. Każda zależnośćAssembly musi znajdować się wewnątrz dokładnie jednej zależności. Nie ma atrybutów.
plik
Określa pliki prywatne dla aplikacji. Opcjonalny.
Element pliku zawiera atrybuty pokazane w poniższej tabeli.
[No changes needed]) | Opis |
---|---|
name | Nazwa pliku. Na przykład Comctl32.dll. To jest wymagane. |
hashalg | Algorytm używany do tworzenia skrótu pliku. Ta wartość powinna mieć wartość SHA1. Opcjonalny. |
skrótu | Skrót pliku, do której odwołuje się nazwa. Ciąg szesnastkowy długości w zależności od algorytmu skrótu. Opcjonalny. |
aktywowanaklasa
Umożliwia niepakowanym aplikacjom stacjonarnym korzystanie ze składników środowiska uruchomieniowego systemu Windows (WinRT) zdefiniowanych przez użytkownika. Ten element jest obsługiwany w systemie Windows 10 w wersji 1903 i nowszych. Aby uzyskać więcej informacji, zobacz ten artykuł.
Element activatableClass musi znajdować się w przestrzeni nazw urn:schemas-microsoft-com:winrt.v1
.
Element activatableClass ma następujące atrybuty.
[No changes needed]) | Opis |
---|---|
name | Określa identyfikator klasy dla klasy możliwej do aktywowania. To jest wymagane. |
threadingModel | Reprezentuje model wątków apartamentów używany do aktywowania serwera przetwarzania. Prawidłowe wartości to both , STA lub MTA . Aby uzyskać więcej informacji, zobacz ten artykuł . To jest wymagane. |
<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
W systemie Windows 10 ten element wymusza proces używania utF-8 jako strony kodu procesu. Aby uzyskać więcej informacji, zobacz Use the UTF-8 code page (Używanie strony kodowej UTF-8). W systemie Windows 10 jedyną prawidłową wartością dla activeCodePage jest UTF-8.
Począwszy od systemu Windows 11, ten element umożliwia również wybór starszej strony kodowej innej niż UTF-8 lub stron kodowych dla określonych ustawień regionalnych dla starszej zgodności aplikacji. Nowoczesne aplikacje są zdecydowanie zachęcane do korzystania z formatu Unicode. W systemie Windows 11 właściwość activeCodePage może być również ustawiona na wartość Starsza lub nazwa ustawień regionalnych, takich jak en-US lub ja-JP.
- Na maszynach skonfigurowanych do aktywnej strony kodu systemu UTF-8 starsza wersja przywróci proces do stron kodowych ustawień regionalnych systemu. Jeśli ustawienia regionalne systemu nie mają zdefiniowanych stron kodu, zostanie użyty system Windows-1252/437. Ustawienie Starsza strona kodowa jest obsługiwane tylko w manifestach łączenia i dopiero zaczyna się od systemu Windows 11.
- Po podaniu nazwy ustawień regionalnych, takiej jak en-US , strona kodowa procesu zostanie odpowiednio ustawiona dla tej strony kodu ustawień regionalnych. Na przykład windows-1252 i 437 dla en-USlub 932 dla ja-JP.
Ten element został po raz pierwszy dodany w systemie Windows 10 w wersji 1903 (aktualizacja z maja 2019 r.). Można zadeklarować tę właściwość i element docelowy/uruchamiany we wcześniejszych kompilacjach systemu Windows, ale musisz obsługiwać starsze wykrywanie i konwersję strony kodu w zwykły sposób. Ten element nie ma atrybutów.
W poniższym przykładzie pokazano, jak za pomocą tego elementu wymusić użycie bieżącego procesu do używania utF-8 jako strony kodu procesu.
<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
Określa, czy jest włączony automatyczny podwyższony poziom uprawnień. Wartość TRUE wskazuje, że jest włączona. Nie ma atrybutów. Plik wykonywalny musi być podpisany cyfrowo przez program Windows Publisher. Do użytku wewnętrznego.
disableTheming
Określa, czy element interfejsu użytkownika jest wyłączony. Wartość TRUE wskazuje, że jest wyłączona. Nie ma atrybutów.
disableWindowFiltering
Określa, czy wyłączyć filtrowanie okien. Wartość TRUE wyłącza filtrowanie okien, aby można było wyliczyć immersyjne okna z pulpitu. disableWindowFiltering został dodany w systemie Windows 8 i nie ma atrybutów.
<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
Określa, czy bieżący proces jest kropkami na cal (dpi) obsługujący.
Windows 10, wersja 1607: Element dpiAware jest ignorowany, jeśli element dpiAwareness jest obecny. Oba elementy można uwzględnić w manifeście, jeśli chcesz określić inne zachowanie systemu Windows 10 w wersji 1607 niż w przypadku starszej wersji systemu operacyjnego.
W poniższej tabeli opisano zachowanie, które wynika na podstawie obecności elementu dpiAware i tekstu, który zawiera. Tekst w elemecie nie jest uwzględniany wielkości liter.
Stan elementu dpiAware | Opis |
---|---|
Nieobecny | Bieżący proces jest domyślnie nieświadomy dpi. To ustawienie można zmienić programowo, wywołując funkcję SetProcessDpiAwareness lub SetProcessDPIAware . |
Zawiera wartość "true" | Bieżący proces uwzględnia dpi systemu. |
Zawiera wartość "false" |
Windows Vista, Windows 7 i Windows 8: Zachowanie jest takie samo jak w przypadku braku oprogramowania dpiAware . Windows 8.1 i Windows 10: Bieżący proces jest nieświadomy dpi i nie można programowo zmienić tego ustawienia przez wywołanie funkcji SetProcessDpiAwareness lub SetProcessDPIAware . |
Zawiera wartość "true/pm" |
Windows Vista, Windows 7 i Windows 8: Bieżący proces uwzględnia dpi systemu. Windows 8.1 i Windows 10: Bieżący proces uwzględnia dpi na monitor. |
Zawiera wartość "na monitor" |
Windows Vista, Windows 7 i Windows 8: Zachowanie jest takie samo jak w przypadku braku oprogramowania dpiAware . Windows 8.1 i Windows 10: Bieżący proces uwzględnia dpi na monitor. |
Zawiera dowolny inny ciąg |
Windows Vista, Windows 7 i Windows 8: Zachowanie jest takie samo jak w przypadku braku oprogramowania dpiAware . Windows 8.1 i Windows 10: Bieżący proces jest nieświadomy dpi i nie można programowo zmienić tego ustawienia przez wywołanie funkcji SetProcessDpiAwareness lub SetProcessDPIAware . |
Aby uzyskać więcej informacji na temat ustawień rozpoznawania dpi, zobacz Tworzenie aplikacji klasycznych o wysokiej rozdzielczości DPI w systemie Windows.
dpiAware nie ma atrybutów.
<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
Określa, czy bieżący proces jest kropkami na cal (dpi) obsługujący.
Minimalna wersja systemu operacyjnego obsługującego element dpiAwareness to Windows 10 w wersji 1607. W przypadku wersji, które obsługują element dpiAwareness , dpiAwareness zastępuje element dpiAware . Oba elementy można uwzględnić w manifeście, jeśli chcesz określić inne zachowanie systemu Windows 10 w wersji 1607 niż w przypadku starszej wersji systemu operacyjnego.
Element dpiAwareness może zawierać pojedynczy element lub listę elementów rozdzielanych przecinkami. W tym drugim przypadku jest używany pierwszy (najdalej po lewej) element na liście rozpoznany przez system operacyjny. W ten sposób można określić różne zachowania obsługiwane w przyszłych wersjach systemu operacyjnego Windows.
W poniższej tabeli opisano zachowanie, które wynika na podstawie obecności elementu dpiAwareness i tekstu, który zawiera w najbardziej rozpoznanych elementach po lewej stronie. Tekst w elemecie nie jest uwzględniany wielkości liter.
dpiStan elementu dpiAwareness : | Opis |
---|---|
Element jest nieobecny | Element dpiAware określa, czy proces jest świadomy dpi. |
Nie zawiera rozpoznanych elementów | Bieżący proces jest domyślnie nieświadomy dpi. To ustawienie można zmienić programowo, wywołując funkcję SetProcessDpiAwareness lub SetProcessDPIAware . |
Pierwszy rozpoznany element to "system" | Bieżący proces uwzględnia dpi systemu. |
Pierwszy rozpoznany element to "permonitor" | Bieżący proces uwzględnia dpi na monitor. |
Pierwszy rozpoznany element to "permonitorv2" | Bieżący proces używa kontekstu rozpoznawania dpi per-monitor-v2. Ten element zostanie rozpoznany tylko w systemie Windows 10 w wersji 1703 lub nowszej. |
Pierwszy rozpoznany element jest "nieświadomy" | Bieżący proces nie jest świadomy dpi. Nie można programowo zmienić tego ustawienia, wywołując funkcję SetProcessDpiAwareness lub SetProcessDPIAware . |
Aby uzyskać więcej informacji na temat ustawień rozpoznawania dpi obsługiwanych przez ten element, zobacz DPI_AWARENESS i DPI_AWARENESS_CONTEXT.
dpiAwareness nie ma atrybutów.
<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
Określa, czy skalowanie GDI jest włączone. Minimalna wersja systemu operacyjnego obsługującego element gdiScaling to Windows 10 w wersji 1703.
Struktura GDI (interfejs urządzenia graficznego) może stosować skalowanie DPI do elementów pierwotnych i tekstu na podstawie monitora bez aktualizacji samej aplikacji. Może to być przydatne w przypadku aplikacji GDI, które nie są już aktywnie aktualizowane.
Nie można skalować grafiki niewektorowej (takiej jak mapy bitowe, ikony lub paski narzędzi) przez ten element. Ponadto grafiki i tekst wyświetlany w mapach bitowych tworzonych dynamicznie przez aplikacje nie mogą być również skalowane przez ten element. Aby uzyskać więcej informacji, zobacz Ulepszanie środowiska wysokiej rozdzielczości DPI w aplikacjach klasycznych opartych na GDI.
To ustawienie można zmienić programowo, wywołując funkcję SetThreadDpiAwarenessContext lub SetProcessDpiAwarenessContext z wartością DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED
.
Wartość TRUE wskazuje, że ten element jest włączony. Nie ma atrybutów.
<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
Określa, czy jest włączona obsługa przewijania o wysokiej rozdzielczości. Wartość TRUE wskazuje, że jest włączona. Nie ma atrybutów.
longPathAware
Umożliwia długie ścieżki, które przekraczają MAX_PATH długości. Ten element jest obsługiwany w systemie Windows 10 w wersji 1607 lub nowszej. Aby uzyskać więcej informacji, zobacz ten artykuł.
<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
Określa, czy jest włączona izolacja sterownika drukarki. Wartość TRUE wskazuje, że jest włączona. Nie ma atrybutów. Izolacja sterowników drukarek zwiększa niezawodność usługi drukowania systemu Windows, umożliwiając uruchamianie sterowników drukarek w procesach, które są oddzielone od procesu, w którym działa bufor wydruku. Obsługa izolacji sterownika drukarki uruchomiona w systemach Windows 7 i Windows Server 2008 R2. Aplikacja może zadeklarować izolację sterownika drukarki w manifeście aplikacji, aby odizolować się od sterownika drukarki i zwiększyć jego niezawodność. Oznacza to, że aplikacja nie ulegnie awarii, jeśli sterownik drukarki ma błąd.
<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
Określa, czy jest włączona obsługa przewijania w ultra-wysokiej rozdzielczości. Wartość TRUE wskazuje, że jest włączona. Nie ma atrybutów.
msix
Określa informacje o tożsamości pakietu z lokalizacją zewnętrzną dla bieżącej aplikacji (zobacz Udzielanie tożsamości pakietu przez pakowanie z lokalizacją zewnętrzną). Ten element jest obsługiwany w systemie Windows 10 w wersji 2004 i nowszych wersjach.
Element msix musi znajdować się w przestrzeni nazw urn:schemas-microsoft-com:msix.v1
. Zawiera atrybuty pokazane w poniższej tabeli.
[No changes needed]) | Opis |
---|---|
wydawca | Opisuje informacje o wydawcy. Ta wartość musi być zgodna z atrybutem Publisher w elemecie Identity w manifeście pakietu spakowanej aplikacji z lokalizacją zewnętrzną. |
packageName | Opisuje zawartość pakietu. Ta wartość musi być zgodna z atrybutem Name w elemecie Identity w manifeście pakietu spakowanej aplikacji z lokalizacją zewnętrzną. |
Identyfikator aplikacji | Unikatowy identyfikator aplikacji. Ta wartość musi być zgodna z atrybutem Id w elemecie Application w manifeście pakietu spakowanej aplikacji z lokalizacją zewnętrzną. |
<?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
Zastępuje domyślną implementację sterty dla interfejsów API sterty Win32 do użycia.
- Wartość SegmentHeap wskazuje, że sterta segmentu zostanie użyta. Sterta segmentów to nowoczesna implementacja stert, która zwykle zmniejsza ogólne użycie pamięci. Ten element jest obsługiwany w systemie Windows 10 w wersji 2004 (kompilacja 19041) i nowszych wersjach.
- Wszystkie inne wartości są ignorowane.
Ten element nie ma atrybutów.
<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
W przypadku plików wykonywalnych programu .NET Framework tylko w formacie IL określa listę architektur procesorów natywnych, z których aplikacja jest zgodna. Może zawierać co najmniej jedną z następujących wartości rozdzielonych spacjami:
- amd64
- arm64
Ten element nie ma atrybutów.
Ten element jest obsługiwany w systemie Windows 11 w wersji 24H2 lub nowszej.
<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
Wszystkie aplikacje zgodne ze standardem UAC powinny mieć żądany poziom wykonywania dodany do manifestu aplikacji. Żądane poziomy wykonywania określają uprawnienia wymagane dla aplikacji. Aby uzyskać więcej informacji, zobacz Jak kontrola konta użytkownika (UAC) wpływa na Aplikację.
Żądany poziom wykonywania jest określony z atrybutem levelżądanegoexecutionLevel malejąco elementu trustInfo . Dozwolone wartości dla poziomu to:
Wartość | Opis |
---|---|
asInvoker | Aplikacja działa na tym samym poziomie uprawnień co proces, który go uruchomił. Możesz podnieść poziom uprawnień aplikacji do wyższego poziomu uprawnień, wybierając pozycję Uruchom jako administrator. |
requireAdministrator | Aplikacja działa przy użyciu uprawnień administratora. Użytkownik, który uruchamia aplikację, musi być członkiem grupy Administratorzy. Jeśli proces otwierania nie jest uruchomiony z uprawnieniami administracyjnymi, system wyświetli monit o poświadczenia. |
najwyższa niedostępna | Aplikacja działa na najwyższym poziomie uprawnień, który może. Jeśli użytkownik, który uruchamia aplikację, jest członkiem grupy Administratorzy, ta opcja jest taka sama jak level="requireAdministrator" . Jeśli najwyższy dostępny poziom uprawnień jest wyższy niż poziom procesu otwierania, system monituje o poświadczenia. |
Ustawienie poziomu w taki sposób, aby zagwarantować highestAvailable
, że aplikacja zostanie pomyślnie uruchomiona zarówno z użytkownikami, którzy są członkami grupy Administratorzy, jak i tymi, którzy nie są. Jeśli aplikacja może działać tylko z dostępem administracyjnym do systemu, oznaczanie aplikacji żądanym poziomem requireAdministrator
wykonywania zapewnia, że system identyfikuje ten program jako aplikację administracyjną i wykonuje niezbędne kroki podniesienia uprawnień.
Domyślnie konsolidator visual C++ osadza fragment kontroli dostępu użytkownika w manifeście aplikacji z poziomem asInvoker
wykonywania .
Element requestedExecutionLevel ma również opcjonalny atrybut uiAccess. Ustaw tę wartość na true
wartość , jeśli chcesz, aby aplikacja pomijała poziomy ochrony interfejsu użytkownika i wprowadzała dane wejściowe do okien z wyższymi uprawnieniami na pulpicie. Ustaw ten atrybut na true
wartość tylko dla aplikacji ułatwień dostępu interfejsu użytkownika. Wartość domyślna to false
. Mogą być stosowane dodatkowe ograniczenia dotyczące ustawień zasad zabezpieczeń. Zobacz Kontrola konta użytkownika: podnieś poziom uprawnień tylko aplikacji UIAccess zainstalowanych w bezpiecznych lokalizacjach. Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące zabezpieczeń dotyczące technologii pomocniczych.
Określenie żądanego węzłaExecutionLevel spowoduje wyłączenie wirtualizacji plików i rejestru. Jeśli chcesz użyć wirtualizacji plików i rejestru w celu zapewnienia zgodności z poprzednimi wersjami, pomiń żądany węzełExecutionLevel .
<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>
Przykład
Poniżej przedstawiono przykład manifestu aplikacji dla aplikacji o nazwie MySampleApp.exe. Aplikacja korzysta z zestawu side-by-side SampleAssembly.
<?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>