Co to jest format pliku MANIFEST?
Plik .manifest to dokument XML używany przez system operacyjny Windows do dostarczania metadanych aplikacji, informacji o powiązaniach zestawów (assembly binding) oraz konfiguracji zabezpieczeń. Zawiera on ustrukturyzowane dane tekstowe opisujące plik wykonywalny lub pakiet instalacyjny - w tym wymagane uprawnienia, zależne zestawy, rozszerzenia plików i parametry wykonawcze.
Windows wykorzystuje pliki .manifest w dwóch głównych rolach. Pierwszą z nich jest wiązanie zestawów Side-by-Side (SxS), wprowadzone w systemie Windows XP: manifest informuje system Windows, od której wersji bibliotek współdzielonych (takich jak Common Controls DLL) zależy aplikacja, zapobiegając konfliktom typu „DLL Hell”, w których wiele programów kłóci się o współdzielone komponenty. Manifest może również aktywować silnik stylów wizualnych - umożliwiając motywy wyglądu kontrolek - bez zmiany podstawowej funkcjonalności aplikacji lub dostępnych funkcji.
Drugą ważną rolą, wprowadzoną w systemie Windows Vista, jest deklarowanie poziomu uprawnień UAC (User Account Control). Manifest określający requireAdministrator lub asInvoker mówi systemowi Windows, o jakie podniesienie uprawnień poprosić, gdy użytkownik uruchamia program.
Nazwa pliku .manifest zazwyczaj odpowiada plikowi wykonywalnemu, któremu towarzyszy, z dodanym rozszerzeniem .manifest - na przykład manifest dla notepad.exe nazywa się notepad.exe.manifest i znajduje się w tym samym folderze. Alternatywnie, manifest może być skompilowany bezpośrednio do pliku .EXE lub .DLL jako osadzony zasób Win32 (typ zasobu RT_MANIFEST), co jest preferowanym podejściem w nowoczesnych aplikacjach.
Pliki .manifest są również powszechnie kompilowane do plików CDF-MS, co zapewnia programowi szybszy dostęp do parametrów aplikacji w czasie wykonywania.
Bezpieczeństwo
RYZYKO: LOWPlik .manifest to zwykły tekst XML - nie może się sam wykonać, więc otwarcie go do odczytu jest bezpieczne. Ryzyko wiąże się z edycją: zmiana manifestu programu (zwłaszcza poziomu UAC lub zależności zestawów) może uniemożliwić uruchomienie lub spowodować błąd „konfiguracja side-by-side jest niepoprawna”, dlatego najpierw wykonaj kopię zapasową oryginału i edytuj tylko, jeśli rozumiesz zmiany. Nie usuwaj pliku .exe.manifest znajdującego się obok programu - niektóre aplikacje nie uruchomią się bez zewnętrznego manifestu. Same manifesty nie są wektorem złośliwego oprogramowania, choć jak w przypadku każdego pliku, należy uważać na te z mylącym podwójnym rozszerzeniem.
Szczegóły formatu
w pigułce- Java JAR MANIFEST.MF - Wewnątrz archiwów .jar, META-INF/MANIFEST.MF to plik tekstowy (nie XML) zawierający listę głównej klasy i atrybutów.
- Manifest aplikacji internetowej - Aplikacje PWA używają manifestu JSON (zazwyczaj manifest.json/manifest.webmanifest) opisującego instalowalną aplikację webową.
- Manifest pamięci podręcznej / zasobów - Różne narzędzia (HTML5 AppCache, narzędzia do budowania, silniki gier) zapisują pliki tekstowe/JSON .manifest zawierające listę dołączonych zasobów.
Programy otwierające pliki MANIFEST
Szczegóły techniczne
specyfikacja| Struktura pliku | XML (tekst UTF-8); element główny <assembly> w przestrzeni nazw urn:schemas-microsoft-com:asm.v1 |
| Typ MIME | application/xml |
| Sygnatura binarna | Brak - zwykły tekst XML; większość plików zaczyna się od <?xml version="1.0"?> lub bezpośrednio od <assembly |
| Metoda osadzania | Może być osadzony jako zasób Win32 (typ RT_MANIFEST, ID 1 dla plików .exe, ID 2 dla plików .dll) wewnątrz hosta binarnego zamiast istnieć jako osobny plik |
| Nazewnictwo plików zewnętrznych | Nazwany po powiązanym pliku wykonywalnym z dodanym rozszerzeniem .manifest (np. app.exe.manifest); musi znajdować się w tym samym katalogu co plik wykonywalny |
| Główne role | Wiązanie wersji zestawów Side-by-Side (SxS), deklaracja poziomu uprawnień UAC, aktywacja stylów wizualnych Common Controls v6, aktywacja COM bez rejestracji |
| Poziomy zaufania UAC | Obsługiwane wartości requestedExecutionLevel: asInvoker, highestAvailable, requireAdministrator |
| Kluczowe przestrzenie nazw XML | urn:schemas-microsoft-com:asm.v1 (tożsamość zestawu i SxS); urn:schemas-microsoft-com:asm.v3 (UAC trustInfo) |
| Wiązanie wersji SxS | Zawiera listę nazw zestawów zależnych i dokładne czwórki wersji (np. 6.0.0.0) w celu przekierowania ładowania bibliotek DLL w czasie wykonywania bez wpisów w rejestrze |
| Obsługa platform | Windows XP i nowsze; UAC requestedExecutionLevel i aktywacja stylów wizualnych wymagają systemu Windows Vista lub nowszego |
| Mechanizm wykonawczy | Windows ładuje manifesty do kontekstu aktywacji (actctx) przy starcie procesu, aby transparentnie przekierować powiązania zestawów |
| Cel kompilacji | Może być skompilowany do plików .cdf-ms (Catalog Definition Format - Manifest Store) dla szybszego dostępu do parametrów w czasie wykonywania |
| Narzędzia programistyczne | Tworzony i osadzany przez Visual Studio, MSBuild oraz narzędzie mt.exe Manifest Tool (Windows SDK); edytowalny w dowolnym edytorze tekstu |
| Typowy rozmiar pliku | 1-10 KB; zawiera tylko deklaracje metadanych XML bez danych binarnych |
| Wydano | Windows XP (2001); UAC privilege manifests since Windows Vista (2007) |
| Specyfikacja | learn.microsoft.com |
Konwersje MANIFEST
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki MANIFEST.
Najczęściej zadawane pytania
Co to jest plik .manifest?
Jak otworzyć plik .manifest?
Czy mogę usunąć plik .manifest?
Jak sprawić, by mój program wymagał uprawnień administratora?
requestedExecutionLevel manifestu na requireAdministrator wewnątrz sekcji <trustInfo>, a następnie osadź manifest w pliku .exe (ustawienie projektu Visual Studio lub narzędzie mt.exe). Windows wyświetli wtedy monit o podniesienie uprawnień przy uruchomieniu.