Udostępnij za pośrednictwem


GenerateApplicationManifest — zadanie

Generuje manifest aplikacji ClickOnce lub manifest natywny. Manifest macierzysty opisuje składnik, definiując unikatową tożsamość składnika i identyfikując wszystkie zestawy i pliki tworzące składnik. Manifest aplikacji ClickOnce rozszerza manifest macierzysty, wskazując punkt wejścia aplikacji i określając poziom zabezpieczeń aplikacji.

Parametry

W poniższej tabeli opisano parametry zadania GenerateApplicationManifest .

Parametr Opis
AssemblyName Opcjonalny String parametr.

Określa Name pole tożsamości zestawu dla wygenerowanego manifestu. Jeśli ten parametr nie zostanie określony, nazwa zostanie wywnioskowana z EntryPoint parametrów lub InputManifest . Jeśli nie można utworzyć nazwy, zadanie zgłasza błąd.
AssemblyVersion Opcjonalny String parametr.

Określa Version pole tożsamości zestawu dla wygenerowanego manifestu. Jeśli ten parametr nie zostanie określony, zostanie użyta domyślna wartość "1.0.0.0".
ClrVersion Opcjonalny String parametr.

Określa minimalną wersję środowiska uruchomieniowego języka wspólnego (CLR) wymaganą przez aplikację. Wartość domyślna to wersja środowiska CLR używana przez system kompilacji. Jeśli zadanie generuje manifest macierzysty, ten parametr jest ignorowany.
ConfigFile Opcjonalny ITaskItem[] parametr.

Określa, który element zawiera plik konfiguracji aplikacji. Jeśli zadanie generuje manifest macierzysty, ten parametr jest ignorowany.
Dependencies Opcjonalny ITaskItem[] parametr.

Określa listę elementów, która definiuje zestaw zestawów zależnych dla wygenerowanego manifestu. Każdy element może być dokładniej opisany przez metadane elementu, aby wskazać dodatkowy stan wdrożenia i typ zależności. Aby uzyskać więcej informacji, zobacz Metadane elementu.
Description Opcjonalny String parametr.

Określa opis aplikacji lub składnika.
EntryPoint Opcjonalny ITaskItem[] parametr.

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

W przypadku manifestu aplikacji ClickOnce ten parametr określa zestaw uruchamiany po uruchomieniu aplikacji.
ErrorReportUrl Opcjonalny System.String parametr.

Określa adres URL strony internetowej, która jest wyświetlana w oknach dialogowych podczas raportów o błędach w instalacjach Technologii ClickOnce.
FileAssociations Opcjonalny ITaskItem[] parametr.

Określa listę co najmniej jednego typu pliku skojarzonego z manifestem wdrożenia ClickOnce.

Skojarzenia plików są prawidłowe tylko wtedy, gdy jest przeznaczony program .NET Framework 3.5 lub nowszy.
Files Opcjonalny ITaskItem[] parametr.

Pliki do uwzględnienia w manifeście. Określ pełną ścieżkę dla każdego pliku.
HostInBrowser Opcjonalny Boolean parametr.

Jeśli trueaplikacja jest hostowana w przeglądarce (podobnie jak aplikacje przeglądarki internetowej WPF).
IconFile Opcjonalny ITaskItem[] parametr.

Wskazuje plik ikony aplikacji. Ikona aplikacji jest wyrażana w wygenerowanych manifestach aplikacji i jest używana w oknie dialogowym Menu Start i Dodaj/Usuń programy . Jeśli te dane wejściowe nie zostaną określone, zostanie użyta ikona domyślna. Jeśli zadanie generuje manifest macierzysty, ten parametr jest ignorowany.
InputManifest Opcjonalny ITaskItem parametr.

Wskazuje wejściowy dokument XML służący jako podstawa generatora manifestu. Dzięki temu dane ustrukturyzowane, takie jak zabezpieczenia aplikacji lub niestandardowe definicje manifestu, mogą być odzwierciedlane w manifeście wyjściowym. Element główny w dokumencie XML musi być węzłem zestawu w przestrzeni nazw asmv1.
IsolatedComReferences Opcjonalny ITaskItem[] parametr.

Określa składniki COM do izolowania w wygenerowanych manifestach. Ten parametr obsługuje możliwość izolowania składników COM dla wdrożenia "Rejestracja bezpłatna COM". Działa ona przez automatyczne generowanie manifestu ze standardowymi definicjami rejestracji MODELU COM. Składniki MODELU COM muszą być jednak zarejestrowane na maszynie kompilacji, aby działały prawidłowo.
LauncherBasedDeployment Opcjonalny parametr logiczny.

Ustaw tę True wartość na wartość podczas kompilowania dla platformy .NET Core 3.1, .NET 5 i nowszych wersji, aby upewnić się, że nazwa pliku wykonywalnego aplikacji została zmieniona na oczekiwaną nazwę pliku wykonywalnego po utworzeniu pliku wykonywalnego hosta aplikacji apphost.exe.
ManifestType Opcjonalny String parametr.

Określa typ manifestu do wygenerowania. Ten parametr może mieć następujące wartości:

- Native
- ClickOnce

Jeśli ten parametr nie zostanie określony, zadanie domyślnie ma wartość ClickOnce.
MaxTargetPath Opcjonalny String parametr.

Określa maksymalną dozwoloną długość ścieżki pliku we wdrożeniu aplikacji ClickOnce. 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, będą zgłaszane w ostrzeżeniu kompilacji. Jeśli te dane wejściowe nie są określone lub nie są zerowe, nie jest wykonywane sprawdzanie. Jeśli zadanie generuje manifest macierzysty, ten parametr jest ignorowany.
OSVersion Opcjonalny String parametr.

Określa minimalną wymaganą wersję systemu operacyjnego wymaganą przez aplikację. Jeśli ten parametr nie zostanie określony, zostanie użyta wartość "4.10.0.0", minimalny obsługiwany system operacyjny programu .NET Framework. Jeśli zadanie generuje manifest macierzysty, te dane wejściowe są ignorowane.
OutputManifest Opcjonalny ITaskItem parametr wyjściowy.

Określa nazwę wygenerowanego pliku manifestu wyjściowego. Jeśli ten parametr nie zostanie określony, nazwa pliku wyjściowego zostanie wywnioskowana z tożsamości wygenerowanego manifestu.
Platform Opcjonalny String parametr.

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

- AnyCPU
- x86
- x64
- Itanium

Jeśli ten parametr nie zostanie określony, zadanie domyślnie ma wartość AnyCPU.
Product Opcjonalny String parametr.

Określa nazwę aplikacji. Jeśli ten parametr nie zostanie określony, nazwa zostanie wywnioskowana z tożsamości wygenerowanego manifestu. Ta nazwa jest używana dla nazwy skrótu w menu Start i jest częścią nazwy wyświetlanej w oknie dialogowym Dodawanie lub usuwanie programów .
Publisher Opcjonalny String parametr.

Określa wydawcę aplikacji. Jeśli ten parametr nie zostanie określony, nazwa zostanie wywnioskowana z zarejestrowanego użytkownika lub tożsamość wygenerowanego manifestu. Ta nazwa jest używana dla nazwy folderu w menu Start i jest częścią nazwy wyświetlanej w oknie dialogowym Dodawanie lub usuwanie programów .
RequiresMinimumFramework35SP1 Opcjonalny Boolean parametr.

Jeśli to prawda, aplikacja wymaga programu .NET Framework 3.5 z dodatkiem SP1 lub nowszej wersji.
TargetCulture Opcjonalny String parametr.

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

Określa nazwę platformy docelowej.
TargetFrameworkProfile Opcjonalny String parametr.

Określa profil platformy docelowej.
TargetFrameworkSubset Opcjonalny String parametr.

Określa nazwę podzestawu programu .NET Framework do docelowego.
TargetFrameworkVersion Opcjonalny String parametr.

Określa docelowy program .NET Framework projektu.
TrustInfoFile Opcjonalny ITaskItem parametr.

Wskazuje dokument XML określający zabezpieczenia aplikacji. Element główny w dokumencie XML musi być węzłem trustInfo w przestrzeni nazw asmv2. Jeśli zadanie generuje manifest macierzysty, ten parametr jest ignorowany.
UseApplicationTrust Opcjonalny Boolean parametr.

Jeśli wartość true, Productwłaściwości , Publisheri SupportUrl są zapisywane w manifeście aplikacji.

Uwagi

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

Aby uzyskać informacje o sposobie używania GenerateDeploymentManifest zadania, zobacz GenerateApplicationManifest— zadanie.

Dane wejściowe dla zależności i plików mogą być dodatkowo ozdobione metadanymi elementu w celu określenia dodatkowego stanu wdrożenia dla każdego elementu.

Metadane elementu

Nazwa metadanych opis
DependencyType Wskazuje, czy zależność jest opublikowana i zainstalowana z aplikacją, czy z wymaganiami wstępnymi. Te metadane są prawidłowe dla wszystkich zależności, ale nie są używane dla plików. Dostępne wartości dla tych metadanych to:

- Install
- Prerequisite

Zainstaluj jest wartością domyślną.
AssemblyType Wskazuje, czy zależność jest zarządzana, czy zestaw natywny. Te metadane są prawidłowe dla wszystkich zależności, ale nie są używane dla plików. Dostępne wartości dla tych metadanych to:

- Managed
- Native
- Unspecified

Unspecified jest wartością domyślną, która wskazuje, że generator manifestu automatycznie określi typ zestawu.
Group Wskazuje grupę do pobierania dodatkowych plików na żądanie. Nazwa grupy jest definiowana przez aplikację i może być dowolnym ciągiem. Pusty ciąg wskazuje, że plik nie jest częścią grupy pobierania, która jest domyślna. Pliki, które nie znajdują się w grupie, są częścią początkowego pobierania aplikacji. Pliki w grupie są pobierane tylko w przypadku jawnego żądania przez aplikację przy użyciu polecenia System.Deployment.Application.

Te metadane są prawidłowe dla wszystkich plików, gdzie IsDataFile znajduje się false i wszystkie zależności, w których DependencyType to Install.
TargetPath Określa sposób definiowania ścieżki w wygenerowany manifest. Ten atrybut jest prawidłowy dla wszystkich plików. Jeśli ten atrybut nie zostanie określony, zostanie użyta specyfikacja elementu. Ten atrybut jest prawidłowy dla wszystkich plików i zależności z wartością DependencyType Install.
IsDataFile Boolean Wartość metadanych wskazująca, czy plik jest plikiem danych. Plik danych jest specjalny w tym, że jest migrowany między aktualizacjami aplikacji. Te metadane są prawidłowe tylko dla plików. False jest wartością domyślną.

Przykład 1

W tym przykładzie użyto zadania do wygenerowania manifestu GenerateApplicationManifest aplikacji ClickOnce i GenerateDeploymentManifest zadania w celu wygenerowania manifestu wdrożenia dla aplikacji z jednym zestawem. Następnie używa SignFile zadania do podpisania manifestów.

Ilustruje to najprostszy możliwy scenariusz generowania manifestu, w którym manifesty Technologii ClickOnce są generowane dla jednego programu. Domyślna nazwa i tożsamość są wnioskowane z zestawu dla manifestu.

Uwaga

W poniższym przykładzie wszystkie pliki binarne aplikacji są wstępnie wbudowane, aby skupić się na aspektach generowania manifestu. W tym przykładzie utworzono w pełni działające wdrożenie technologii ClickOnce.

Uwaga

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

<Project DefaultTargets="Build"
    xmlns="http://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>

Przykład 2

W tym przykładzie użyto GenerateApplicationManifest zadań i GenerateDeploymentManifest , aby wygenerować manifesty aplikacji ClickOnce i wdrożenia dla aplikacji z jednym zestawem, określając nazwę i tożsamość manifestów.

Ten przykład jest podobny do poprzedniego przykładu, z wyjątkiem jawnej nazwy i tożsamości manifestów. Ponadto ten przykład jest skonfigurowany jako aplikacja online zamiast zainstalowanej aplikacji.

Uwaga

W poniższym przykładzie wszystkie pliki binarne aplikacji są wstępnie wbudowane, aby skupić się na aspektach generowania manifestu. W tym przykładzie utworzono w pełni działające wdrożenie technologii ClickOnce.

Uwaga

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

<Project DefaultTargets="Build"
    xmlns="http://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>

Przykład 3

W tym przykładzie użyto GenerateApplicationManifest zadań i GenerateDeploymentManifest , aby wygenerować manifesty aplikacji ClickOnce i wdrożenia dla aplikacji z wieloma plikami i zestawami.

Uwaga

W poniższym przykładzie wszystkie pliki binarne aplikacji są wstępnie wbudowane, aby skupić się na aspektach generowania manifestu. W tym przykładzie utworzono w pełni działające wdrożenie technologii ClickOnce.

Uwaga

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

<Project DefaultTargets="Build"
    xmlns="http://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>

Przykład 4

W tym przykładzie użyto zadania do wygenerowania manifestu GenerateApplicationManifest natywnego dla pliku Test.exe aplikacji, odwołującego się do składnika natywnego Alpha.dll i izolowanego składnika COM Bravo.dll.

W tym przykładzie jest generowany manifest Test.exe.manifest, dzięki czemu można wdrożyć aplikację XCOPY i korzystać z bezpłatnej rejestracji COM.

Uwaga

W poniższym przykładzie wszystkie pliki binarne aplikacji są wstępnie wbudowane, aby skupić się na aspektach generowania manifestu. W tym przykładzie utworzono w pełni działające wdrożenie technologii ClickOnce.

<Project DefaultTargets="Build" xmlns="http://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ż