Generowanie manifestu w Visual StudioManifest Generation in Visual Studio

Generowanie pliku manifestu dla określonego projektu może być kontrolowane w oknie dialogowym strony właściwości projektu.Generation of a manifest file for a particular project can be controlled in the project Property Pages dialog. Na karcie Właściwości konfiguracji kliknij przycisk konsolidator, a następnie plik manifestu, a następnie Generuj manifest.On the Configuration Properties tab, click Linker, then Manifest File, then Generate Manifest. Domyślnie właściwości projektu nowych projektów są ustawione tak, aby generować plik manifestu.By default the project properties of new projects are set to generate a manifest file. Można jednak wyłączyć generowanie manifestu dla projektu przy użyciu właściwości generowanie manifestu projektu.However it is possible to disable generation of the manifest for a project using the Generate Manifest property of the project. Gdy ta właściwość ma wartość Yes (tak), zostanie wygenerowany manifest dla tego projektu.When this property is set to Yes, the manifest for this project is generated. W przeciwnym razie konsolidator ignoruje informacje o zestawie podczas rozpoznawania zależności od kodu aplikacji i nie generuje manifestu.Otherwise the linker ignores assembly information when resolving dependencies of the application code, and does not generate the manifest.

System kompilacji w programie Visual Studio umożliwia osadzenie manifestu w końcowym pliku aplikacji binarnej lub wygenerowanie go jako pliku zewnętrznego.The build system in Visual Studio allows the manifest to be embedded in the final binary application file, or generated as an external file. To zachowanie jest kontrolowane przez opcję Osadź manifest w oknie dialogowym właściwości projektu .This behavior is controlled by the Embed Manifest option in the Project Properties dialog. Aby ustawić tę właściwość, Otwórz węzeł narzędzie manifestu , a następnie wybierz pozycję dane wejściowe i wyjściowe.To set this property, open the Manifest Tool node, then select Input and Output. Jeśli manifest nie jest osadzony, zostanie wygenerowany jako plik zewnętrzny i zapisany w tym samym katalogu, co w przypadku finalnego pliku binarnego.If the manifest is not embedded, it is generated as an external file and saved in the same directory as the final binary. Jeśli manifest jest osadzony, program Visual Studio osadzi końcowe manifesty przy użyciu następującego procesu:If the manifest is embedded, Visual Studio embeds the final manifests using the following process:

  1. Po skompilowaniu kodu źródłowego w plikach obiektów konsolidator zbiera zależne informacje o zestawie.After the source code is compiled to object files, the linker collects dependent assembly information. Podczas łączenia końcowego pliku binarnego konsolidator generuje manifest pośredni, który jest używany później do generowania manifestu końcowego.While linking the final binary, the linker generates an intermediate manifest that is used later to generate the final manifest.

  2. Po zakończeniu pośredniego manifestu i konsolidacji narzędzie manifestu zostanie wykonane w celu scalenia końcowego manifestu i zapisania go jako pliku zewnętrznego.After the intermediate manifest and linking are finished, the manifest tool will be executed to merge a final manifest and save it as an external file.

  3. System kompilacji projektu wykrywa, czy manifest wygenerowany przez narzędzie manifestu zawiera inne informacje niż manifest już osadzony w pliku binarnym.The project build system then detects whether the manifest generated by the manifest tool contains different information than the manifest already embedded in the binary.

  4. Jeśli manifest osadzony w pliku binarnym różni się od manifestu wygenerowanego przez narzędzie manifestu lub plik binarny nie zawiera osadzonego manifestu, program Visual Studio wywołaje jeden więcej czasu w celu osadzenia zewnętrznego pliku manifestu w formacie binarnym jako zasób.If the manifest embedded in the binary is different from the manifest generated by the manifest tool, or the binary does not contain an embedded manifest, Visual Studio will invoke the linker one more time to embed the external manifest file inside the binary as a resource.

  5. Jeśli manifest osadzony w pliku binarnym jest taki sam jak manifest wygenerowany przez narzędzie manifestu, kompilacja będzie kontynuowana do następnych kroków kompilacji.If the manifest embedded in the binary is the same as the manifest generated by the manifest tool, the build will continue to the next build steps.

Manifest jest osadzony w końcowym pliku binarnym jako zasób tekstowy i można go wyświetlić, otwierając ostateczną wartość binarną jako plik w programie Visual Studio.The manifest is embedded inside the final binary as a text resource and it can be viewed by opening the final binary as a file in Visual Studio. Aby zapewnić, że manifest wskazuje poprawne biblioteki, wykonaj kroki opisane w artykule Opis zależności aplikacji Visual C++ lub postępuj zgodnie z sugestiami opisanymi w sekcji Rozwiązywanie problemów .To ensure that the manifest points to the correct libraries, follow the steps described in Understanding the Dependencies of a Visual C++ Application or follow the suggestions described in the Troubleshooting section.

Zobacz teżSee also

Informacje o generowaniu manifestu dla programów C/C++Understanding Manifest Generation for C/C++ Programs