Udostępnij za pośrednictwem


GenerateApplicationManifest — Zadanie

Generuje manifest aplikacji ClickOnce lub manifest macierzysty.Manifest natywny zawiera opis składnika poprzez określenie unikatowej tożsamości składnika i identyfikację wszystkich zestawów i plików, które tworzą składnik.Manifest aplikacji ClickOnce rozszerza manifest natywny przez wskazanie punktu wejścia aplikacji i określenie poziomu zabezpieczeń aplikacji.

Parametry

W poniższej tabeli przedstawiono parametry dla zadania GenerateApplicationManifest.

Parametr

Opis

AssemblyName

Parametr opcjonalny String.

Określa pole tożsamości zestawu Name wygenerowanego manifestu.Jeśli ten parametr nie jest określony, nazwa wynika z parametru EntryPoint lub InputManifest.Jeśli nie można utworzyć żadnej nazwy, zadanie wyrzuca błąd.

AssemblyVersion

Parametr opcjonalny String.

Określa pole tożsamości zestawu Version wygenerowanego manifestu.Jeśli ten parametr nie jest określony, zostanie użyta wartość domyślna „1.0.0.0”.

ClrVersion

Parametr opcjonalny String.

Określa minimalną wersję Środowiska uruchomieniowego języka wspólnego (CLR) wymaganą przez tę aplikację.Wartością domyślną jest wersja środowiska CLR używana przez system kompilacji.Jeśli zadanie generuje natywny manifest, ten parametr jest ignorowany.

ConfigFile

Parametr opcjonalny ITaskItem[].

Określa, który element zawiera plik konfiguracji aplikacji.Jeśli zadanie generuje natywny manifest, ten parametr jest ignorowany.

Dependencies

Parametr opcjonalny ITaskItem[].

Określa elementu listy, który definiuje zestaw zestawów zależnych dla wygenerowanego manifestu.Każdy element może być dalej opisany przez metadane elementu, aby wskazać dodatkowy stan wdrożenia i typ zależności.Aby uzyskać więcej informacji, zobacz sekcję poniżej „Element metadnych”.

Description

Parametr opcjonalny String.

Określa opis dla aplikacji lub komponentu.

EntryPoint

Parametr opcjonalny ITaskItem[].

Określa pojedynczy element, który wskazuje punkt wejścia dla wygenerowanego zestawu manifestu.

W przypadku manifestu aplikacji ClickOnce, ten parametr określa zestaw, który rozpoczyna się, gdy aplikacja jest uruchomiona.

ErrorReportUrl

Parametr opcjonalny [String].

Określa adres URL strony sieci Web, która jest wyświetlana w oknach dialogowych podczas raportów błędu instalacji ClickOnce.

FileAssociations

Parametr opcjonalny ITaskItem[].

Określa listę typu pliku, który jest skojarzony z manifestem wdrażania ClickOnce.

Skojarzenia plików poprawne tylko wtedy, gdy platforma .NET Framework 3.5 lub nowsza jest celem.

Files

Parametr opcjonalny ITaskItem[].

Pliki do dołączenia w manifeście.Określ pełną ścieżkę każdego pliku.

HostInBrowser

Parametr opcjonalny [Boolean].

Jeśli true, aplikacja jest obsługiwana w przeglądarce (jak aplikacje przeglądarki WPF sieci Web).

IconFile

Parametr opcjonalny ITaskItem[].

Wskazuje plik ikony aplikacji.Ikona aplikacji jest wyrażona w manifeście aplikacji wygenerowanym i jest używanym dla okna dialogowego Menu Start i Dodaj/Usuń programy.Jeśli nie określono tych danych wejściowych, ikona domyślna jest używana.Jeśli zadanie generuje natywny manifest, ten parametr jest ignorowany.

InputManifest

Parametr opcjonalny ITaskItem.

Wskazuje dokument danych wejściowych XML, aby służyć jako podstawa do generatora manifestu.Dzięki temu dane strukturalnych, takie jak zabezpieczenia aplikacji lub niestandardowe definicje manifestu są odzwierciedlane w manifeście danych wyjściowych.Element główny dokumentu XML musi być zbiorem węzła trustInfo w obszarze nazw asmv1.

IsolatedComReferences

Parametr opcjonalny ITaskItem[].

Określa składniki COM do izolowania w manifeście.Ten parametr obsługuje możliwość izolowania składników COM wdrażania "Wolna rejestracja COM".Jego działanie polega na automatycznym generowaniu manifestu ze standardowymi definicjami rejestracji COM.Jednakże składniki COM muszą być zarejestrowane na komputerze kompilacji, aby funkcjonowało poprawnie.

ManifestType

Parametr opcjonalny String.

Określa, jakiego typu manifest wygenerować.Ten parametr może mieć następujące wartości:

  • Native

  • ClickOnce

Jeśli ten parametr nie jest określony, domyślnym zadaniem jest ClickOnce.

MaxTargetPath

Parametr opcjonalny String.

Określa maksymalną długość ścieżki pliku w ClickOnce wdrażaniu aplikacji.Jeśli ta wartość jest określona, długość każdej ścieżki pliku w aplikacji jest sprawdzana względem tego limitu.Wszystkie elementy, które przekraczają limit wywołają ostrzeżenia kompilacji.Jeśli wejście to nie zostało określone lub jest równe zeru, wówczas żadne sprawdzanie nie jest przeprowadzane.Jeśli zadanie generuje natywny manifest, ten parametr jest ignorowany.

OSVersion

Parametr opcjonalny String.

Określa wersję minimalną wymaganego systemu operacyjnego (OS) wymaganego przez tę aplikację.Na przykład wartość „5.1.2600.0” wskazuje, że system operacyjny to Windows XP.Jeśli ten parametr nie jest określony, zostanie użyta wartość „4.10.0.0”, która wskazuje Windows 98 Wydanie drugie, minimum jeżeli chodzi o obsługiwane systemy operacyjne platformy .NET Framework.Jeśli zadanie generuje natywny manifest, ta wartość wejściowa jest ignorowana.

OutputManifest

Parametr opcjonalny ITaskItem wyjściowy.

Określa nazwę utworzonego wyjściowego pliku manifestu.Jeśli ten parametr nie jest określony, nazwa pliku danych zewnętrznych wynika z tożsamości wygenerowanego manifestu.

Platform

Parametr opcjonalny String.

Określa platformę docelową aplikacji.Ten parametr może mieć następujące wartości:

  • AnyCPU

  • x86

  • x64

  • Itanium

Jeśli ten parametr nie jest określony, domyślnym zadaniem jest AnyCPU.

Product

Parametr opcjonalny String.

Określa nazwę aplikacji.Jeśli ten parametr nie jest określony, nazwa wynika z tożsamości wygenerowanego manifestu.Nazwa ta jest używaną nazwą skrótu w menu Start i jest częścią nazwy, która pojawia się w oknie dialogowym Dodaj lub Usuń programy.

Publisher

Parametr opcjonalny String.

Określa wydawcę aplikacji.Jeśli ten parametr nie jest określony, nazwa wynika z zarejestrowanego użytkownika lub tożsamości wygenerowanego manifestu.Nazwa ta jest używaną nazwą folderu w menu start i jest częścią nazwy, która pojawia się w oknie dialogowym Dodaj lub Usuń programy.

RequiresMinimumFramework35SP1

Parametr opcjonalny Boolean.

Jeśli ma wartość true, to aplikacja wymaga .NET Framework 3.5 z dodatkiem SP1 lub nowszej wersji.

TargetCulture

Parametr opcjonalny String.

Identyfikuje kulturę aplikacji i określa pole Language tożsamości zestawu wygenerowanego manifestu.Jeśli ten parametr nie jest określony, zakłada się, że aplikacja jest kulturowo niezmienna.

TargetFrameworkMoniker

Parametr opcjonalny [String].

Określa Krótką nazwę platformy docelowej.

TargetFrameworkProfile

Parametr opcjonalny [String].

Określa profil platformy docelowej.

TargetFrameworkSubset

Parametr opcjonalny [String].

Określa nazwę podzbioru .NET Framework do obiektu docelowego.

TargetFrameworkVersion

Parametr opcjonalny [String].

Określa docelową aplikację .NET Framework dla tego projektu.

TrustInfoFile

Parametr opcjonalny ITaskItem.

Wskazuje dokument XML, który określa zabezpieczenia aplikacji.Element główny dokumentu XML musi być węzłem trustInfo w obszarze nazw asmv2.Jeśli zadanie generuje natywny manifest, ten parametr jest ignorowany.

UseApplicationTrust

Parametr opcjonalny [Boolean].

Jeśli ma wartość true, właściwości Product, Publisher i SupportUrl są zapisywane w manifeście aplikacji.

Uwagi

Oprócz parametrów wymienionych powyżej, to zadanie dziedziczy parametry z klasy GenerateManifestBase, która sama dziedziczy z klasy Task.Aby uzyskać listę parametrów klasy Zadanie, zobacz Klasa podstawowa zadania.

Aby uzyskać informacje na temat sposobu wykorzystania zadania GenerateDeploymentManifest, zobacz GenerateApplicationManifest — Zadanie.

Dane wejściowe dla zależności i pliki mogą być dalej ozdobione metadanymi elementu, aby określić dodatkowy stan wdrażania dla każdego elementu.

Element metadanych

Nazwa metadanych

Opis

DependencyType

Wskazuje, czy zależność jest opublikowana i zainstalowana z aplikacją lub warunkiem wstępnym.Te metadane obowiązuje w przypadku wszystkich zależności, ale nie są używane do plików.Dostępne wartości dla tych metadanych są następujące:

  • Install

  • Prerequisite

Zainstaluj jest wartością domyślną.

AssemblyType

Wskazuje, czy zależność jest zestawem zarządzanym, czy macierzystym.Te metadane obowiązuje w przypadku wszystkich zależności, ale nie są używane do plików.Dostępne wartości dla tych metadanych są następujące:

  • Managed

  • Native

  • Unspecified

Unspecified jest wartością domyślną, która wskazuje, że generator manifestu automatycznie określi typ zespołu.

Group

Wskazuje grupę do pobierania dodatkowych plików na żądanie.Nazwa grupy jest zdefiniowany przez aplikację i może być dowolnym ciągiem.Pusty ciąg wskazuje, że plik nie jest częścią grupy pobrania, co jest ustawieniem domyślnym.Pliki nie wchodzące w skład grupy są częścią pierwszego pobrania aplikacji.Pliki w grupie są pobierane tylko wtedy, gdy wyraźnie żąda tego aplikacja za pomocą System.Deployment.Application.

Te metadane obowiązuje w przypadku wszystkich plików gdzie IsDataFile jest false i wszystkie zależności gdzie DependencyType jest Install.

TargetPath

Określa, jak ścieżka powinna być zdefiniowane w wygenerowanym manifeście.Ten atrybut jest ważny dla wszystkich plików.Jeśli ten atrybut nie jest określony, specyfikacja elementu jest używana.Ten atrybut jest ważny dla wszystkich plików i współzależności z DependencyType wartością Install.

IsDataFile

Wartość metadanych Boolean, która wskazuje, czy plik jest plikiem danych, czy nie.Plik danych jest wyjątkowy, ponieważ jest przenoszony między aktualizacjami aplikacji.Te metadane są prawidłowe tylko dla plików.Wartość domyślna to False

Przykład

W poniższym przykładzie użyto GenerateApplicationManifest zadania do wygenerowania ClickOnce manifestu aplikacji i GenerateDeploymentManifest zadania do wygenerowania wdrażania manifestu dla aplikacji z pojedynczym zestawem.Następnie używa zadania SignFile do podpisania manifestów.

Obrazuje to najprostszy scenariusz możliwego manifestu scenariusza generowania gdzie ClickOnce w jednym programie są generowane manifesty.Domyślna nazwa i tożsamość są dedukowane z zestawu dla manifestu.

[!UWAGA]

W poniższym przykładzie wszystkie pliki binarne aplikacji są wstępnie zbudowaną w celu skupiania się na aspektach generacji manifestu.Ten przykład generuje w pełni pracujące ClickOnce wdrażania.

[!UWAGA]

Aby uzyskać więcej informacji na temat właściwości Thumbprint używanej w zadaniu SignFile w tym przykładzie, zobacz SignFile — Zadanie.

<Project DefaultTargets="Build"
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">

    <ItemGroup>
        <EntryPoint Include="SimpleWinApp.exe" />
    </ItemGroup>

    <PropertyGroup>
        <Thumbprint>
             <!-- Insert generated thumbprint here -->
        </Thumbprint>
    </PropertyGroup>

    <Target Name="Build">

        <GenerateApplicationManifest
            EntryPoint="@(EntryPoint)">
            <Output
                ItemName="ApplicationManifest"
                TaskParameter="OutputManifest"/>
        </GenerateApplicationManifest>

        <GenerateDeploymentManifest
            EntryPoint="@(ApplicationManifest)">
            <Output
                ItemName="DeployManifest"
                TaskParameter="OutputManifest"/>
        </GenerateDeploymentManifest>

        <SignFile
            CertificateThumbprint="$(Thumbprint)"
            SigningTarget="@(ApplicationManifest)"/>

        <SignFile
            CertificateThumbprint="$(Thumbprint)"
            SigningTarget="@(DeployManifest)"/>

    </Target>
</Project>

W poniższym przykładzie użyto GenerateApplicationManifest i GenerateDeploymentManifest do wygenerowania ClickOnce stosowania i wdrażania manifestów aplikacji z jednego zestawu, określając nazwę tożsamości manifestów.

W tym przykładzie jest podobny do poprzedniego przykładu, z wyjątkiem jawnie określonej nazwy i tożsamości manifestów.Ponadto, ten przykład jest konfigurowany jako aplikacja online zamiast zainstalowanej aplikacji.

[!UWAGA]

W poniższym przykładzie wszystkie pliki binarne aplikacji są wstępnie zbudowaną w celu skupiania się na aspektach generacji manifestu.Ten przykład generuje w pełni pracujące ClickOnce wdrażania.

[!UWAGA]

Aby uzyskać więcej informacji na temat właściwości Thumbprint używanej w zadaniu SignFile w tym przykładzie, zobacz SignFile — Zadanie.

<Project DefaultTargets="Build"
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">

    <ItemGroup>
        <EntryPoint Include="SimpleWinApp.exe" />
    </ItemGroup>

    <PropertyGroup>
        <Thumbprint>
             <!-- Insert generated thumbprint here -->
        </Thumbprint>
    </PropertyGroup>

    <Target Name="Build">

        <GenerateApplicationManifest
            AssemblyName="SimpleWinApp.exe"
            AssemblyVersion="1.0.0.0"
            EntryPoint="@(EntryPoint)"
            OutputManifest="SimpleWinApp.exe.manifest">
            <Output
                ItemName="ApplicationManifest"
                TaskParameter="OutputManifest"/>
        </GenerateApplicationManifest>

        <GenerateDeploymentManifest
                AssemblyName="SimpleWinApp.application"
                AssemblyVersion="1.0.0.0"
                EntryPoint="@(ApplicationManifest)"
                Install="false"
                OutputManifest="SimpleWinApp.application">
                <Output
                    ItemName="DeployManifest"
                    TaskParameter="OutputManifest"/>
        </GenerateDeploymentManifest>

        <SignFile
            CertificateThumbprint="$(Thumbprint)"
            SigningTarget="@(ApplicationManifest)"/>

        <SignFile
            CertificateThumbprint="$(Thumbprint)"
            SigningTarget="@(DeployManifest)"/>

    </Target>
</Project>

W poniższym przykładzie użyto GenerateApplicationManifest i GenerateDeploymentManifest do wygenerowania ClickOnce stosowania i wdrażania manifestów aplikacji z wielu plików i zestawów.

[!UWAGA]

W poniższym przykładzie wszystkie pliki binarne aplikacji są wstępnie zbudowaną w celu skupiania się na aspektach generacji manifestu.Ten przykład generuje w pełni pracujące ClickOnce wdrażania.

[!UWAGA]

Aby uzyskać więcej informacji na temat właściwości Thumbprint używanej w zadaniu SignFile w tym przykładzie, zobacz SignFile — Zadanie.

<Project DefaultTargets="Build"
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">

    <ItemGroup>
        <EntryPoint Include="SimpleWinApp.exe" />
    </ItemGroup>

    <PropertyGroup>
        <Thumbprint>
             <!-- Insert generated thumbprint here -->
        </Thumbprint>
        <DeployUrl>
            <!-- Insert the deployment URL here -->
        </DeployUrl>
        <SupportUrl>
            <!-- Insert the support URL here -->
        </SupportUrl>
    </PropertyGroup>

    <Target Name="Build">

    <ItemGroup>
        <EntryPoint Include="SimpleWinApp.exe"/>
        <Dependency Include="ClassLibrary1.dll">
            <AssemblyType>Managed</AssemblyType>
            <DependencyType>Install</DependencyType>
        </Dependency>
        <Dependency Include="ClassLibrary2.dll">
            <AssemblyType>Managed</AssemblyType>
            <DependencyType>Install</DependencyType>
            <Group>Secondary</Group>
        </Dependency>
        <Dependency Include="MyAddIn1.dll">
            <AssemblyType>Managed</AssemblyType>
            <DependencyType>Install</DependencyType>
            <TargetPath>Addins\MyAddIn1.dll</TargetPath>
        </Dependency>
        <Dependency Include="ClassLibrary3.dll">
            <AssemblyType>Managed</AssemblyType>
            <DependencyType>Prerequisite</DependencyType>
        </Dependency>

        <File Include="Text1.txt">
            <TargetPath>Text\Text1.txt</TargetPath>
            <Group>Text</Group>
        </File>
        <File Include="DataFile1.xml ">
            <TargetPath>Data\DataFile1.xml</TargetPath>
            <IsDataFile>true</IsDataFile>
        </File>

        <IconFile Include="Heart.ico"/>
        <ConfigFile Include="app.config">
            <TargetPath>SimpleWinApp.exe.config</TargetPath>
        </ConfigFile>
        <BaseManifest Include="app.manifest"/>
    </ItemGroup>

    <Target Name="Build">

        <GenerateApplicationManifest
            AssemblyName="SimpleWinApp.exe"
            AssemblyVersion="1.0.0.0"
            ConfigFile="@(ConfigFile)"
            Dependencies="@(Dependency)"
            Description="TestApp"
            EntryPoint="@(EntryPoint)"
            Files="@(File)"
            IconFile="@(IconFile)"
            InputManifest="@(BaseManifest)"
            OutputManifest="SimpleWinApp.exe.manifest">
            <Output
                ItemName="ApplicationManifest"
                TaskParameter="OutputManifest"/>
        </GenerateApplicationManifest>

        <GenerateDeploymentManifest
            AssemblyName="SimpleWinApp.application"
            AssemblyVersion="1.0.0.0"
            DeploymentUrl="$(DeployToUrl)"
            Description="TestDeploy"
            EntryPoint="@(ApplicationManifest)"
            Install="true"
            OutputManifest="SimpleWinApp.application"
            Product="SimpleWinApp"
            Publisher="Microsoft"
            SupportUrl="$(SupportUrl)"
            UpdateEnabled="true"
            UpdateInterval="3"
            UpdateMode="Background"
            UpdateUnit="weeks">
            <Output
                ItemName="DeployManifest"
                TaskParameter="OutputManifest"/>
        </GenerateDeploymentManifest>

        <SignFile
            CertificateThumbprint="$(Thumbprint)"
            SigningTarget="@(ApplicationManifest)"/>

        <SignFile
            CertificateThumbprint="$(Thumbprint)"
            SigningTarget="@(DeployManifest)"/>

    </Target>
</Project>

W poniższym przykładzie użyto GenerateApplicationManifest zadania, aby wygenerować macierzysty manifest aplikacji Test.exe, odwołującej się do macierzystych Alpha.dll i wyizolowanego modelu COM składnika Bravo.dll.

Ten przykład generuje Test.exe.manifest, sprawiając, że aplikacja XCOPY jest możliwa do rozmieszczenia korzystając z rejestracji wolnego modelu COM.

[!UWAGA]

W poniższym przykładzie wszystkie pliki binarne aplikacji są wstępnie zbudowaną w celu skupiania się na aspektach generacji manifestu.Ten przykład generuje w pełni pracujące ClickOnce wdrażania.

<Project DefaultTargets="Build" xmlns="https://schemas.microsoft.com/developer/msbuild/2003">

    <ItemGroup>
        <File Include="Test.exe" />
        <Dependency Include="Alpha.dll">
            <AssemblyType>Native</AssemblyType>
            <DependencyType>Install</DependencyType>
        </Dependency>
        <ComComponent Include="Bravo.dll" />
    </ItemGroup>

    <Target Name="Build">
        <GenerateApplicationManifest
            AssemblyName="Test.exe"
            AssemblyVersion="1.0.0.0"
            Dependencies="@(Dependency)"
            Files="@(File)"
            IsolatedComReferences="@(ComComponent)"
            ManifestType="Native">
            <Output
                ItemName="ApplicationManifest"
                TaskParameter="OutputManifest"/>
        </GenerateApplicationManifest>

    </Target>
</Project>

Zobacz też

Informacje

GenerateDeploymentManifest — Zadanie

SignFile — Zadanie

Koncepcje

Zadania programu MSBuild

Inne zasoby

Odwołanie do zadania MSBuild