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 true aplikacja 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, Product właściwości , Publisher i 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>