GenerateApplicationManifest task

Menghasilkan manifes aplikasi ClickOnce atau manifes asli. Manifes asli menjelaskan komponen dengan menentukan identitas unik untuk komponen dan mengidentifikasi semua rakitan dan file yang membentuk komponen. Manifes aplikasi ClickOnce memperluas manifes asli dengan menunjukkan titik masuk aplikasi, dan menentukan tingkat keamanan aplikasi.

Parameter

Tabel berikut menjelaskan parameter untuk tugas tersebut GenerateApplicationManifest.

Parameter Deskripsi
AssemblyName Parameter String opsional.

Menentukan Name bidang identitas perakitan untuk manifes yang dihasilkan. Jika parameter ini tidak ditentukan, nama disimpulkan EntryPoint dari parameter atau InputManifest. Jika tidak ada nama yang dapat dibuat, tugas akan menampilkan kesalahan.
AssemblyVersion Parameter String opsional.

Menentukan Version bidang identitas perakitan untuk manifes yang dihasilkan. Jika parameter ini tidak ditentukan, nilai default "1.0.0.0" digunakan.
ClrVersion Parameter String opsional.

Menentukan versi minimum Runtime Bahasa Umum (CLR) yang diperlukan oleh aplikasi. Nilai default adalah versi CLR yang digunakan oleh sistem build. Jika tugas menghasilkan manifes asli, parameter ini diabaikan.
ConfigFile Parameter ITaskItem[] opsional.

Menentukan item mana yang berisi file konfigurasi aplikasi. Jika tugas menghasilkan manifes asli, parameter ini diabaikan.
Dependencies Parameter ITaskItem[] opsional.

Menentukan daftar item yang menentukan kumpulan rakitan dependen untuk manifes yang dihasilkan. Setiap item dapat dijelaskan lebih lanjut berdasarkan metadata item untuk menunjukkan status penyebaran tambahan dan jenis dependensi. Untuk informasi selengkapnya, lihat Metadata item.
Description Parameter String opsional.

Menentukan deskripsi untuk aplikasi atau komponen.
EntryPoint Parameter ITaskItem[] opsional.

Menentukan satu item yang menunjukkan titik masuk untuk perakitan manifes yang dihasilkan.

Untuk manifes aplikasi ClickOnce, parameter ini menentukan rakitan yang dimulai saat aplikasi dijalankan.
ErrorReportUrl Parameter System.String opsional.

Menentukan URL halaman web yang ditampilkan dalam kotak dialog selama laporan kesalahan dalam penginstalan ClickOnce.
FileAssociations Parameter ITaskItem[] opsional.

Menentukan daftar satu atau beberapa jenis file yang terkait dengan manifes penyebaran ClickOnce.

Asosiasi file hanya valid ketika .NET Framework 3.5 atau yang lebih baru ditargetkan.
Files Parameter ITaskItem[] opsional.

File yang akan disertakan dalam manifes. Tentukan jalur lengkap untuk setiap file.
HostInBrowser Parameter Boolean opsional.

Jika true, aplikasi dihosting di browser (seperti halnya WPF Web Browser Applications).
IconFile Parameter ITaskItem[] opsional.

Menunjukkan file ikon aplikasi. Ikon aplikasi dinyatakan dalam manifes aplikasi yang dihasilkan dan digunakan untuk dialog Menu Mulai dan Tambahkan/Hapus Program. Jika input ini tidak ditentukan, ikon default akan digunakan. Jika tugas menghasilkan manifes asli, parameter ini diabaikan.
InputManifest Parameter ITaskItem opsional.

Menunjukkan dokumen XML input untuk berfungsi sebagai basis untuk generator manifes. Ini memungkinkan data terstruktur seperti keamanan aplikasi atau definisi manifes kustom agar tercermin dalam manifes output. Elemen akar dalam dokumen XML harus merupakan simpul rakitan di namespace asmv1.
IsolatedComReferences Parameter ITaskItem[] opsional.

Menentukan komponen COM untuk diisolasi dalam manifes yang dihasilkan. Parameter ini mendukung kemampuan untuk mengisolasi komponen COM untuk penyebaran "Pendaftaran Gratis COM". Ini bekerja dengan membuat manifes secara otomatis dengan definisi pendaftaran COM standar. Namun, komponen COM harus didaftarkan pada komputer build agar ini berfungsi dengan baik.
LauncherBasedDeployment Parameter Boolean opsional.

Atur ini ke True saat membangun untuk .NET Core 3.1, .NET 5 dan versi yang lebih baru untuk memastikan bahwa aplikasi yang dapat dieksekusi diganti namanya menjadi nama yang dapat dieksekusi yang diharapkan setelah membangun apphost.exe yang dapat dieksekusi host aplikasi.
ManifestType Parameter String opsional.

Menentukan jenis manifes mana yang akan dihasilkan. Parameter ini dapat memiliki nilai berikut:

- Native
- ClickOnce

Jika parameter ini tidak ditentukan, tugas default ke ClickOnce.
MaxTargetPath Parameter String opsional.

Menentukan panjang maksimum jalur file yang diizinkan dalam penyebaran aplikasi ClickOnce. Jika nilai ini ditentukan, panjang setiap jalur file dalam aplikasi diperiksa sesuai batas ini. Item apa pun yang melebihi batas akan dinaikkan ke peringatan build. Jika input ini tidak ditentukan atau nol, maka tidak ada pemeriksaan yang dilakukan. Jika tugas menghasilkan manifes asli, parameter ini diabaikan.
OSVersion Parameter String opsional.

Menentukan versi sistem operasi (OS) minimum yang diperlukan oleh aplikasi. Jika parameter ini tidak ditentukan, nilai "4.10.0.0" digunakan, OS minimum yang didukung dari .NET Framework. Jika tugas menghasilkan manifes asli, input ini diabaikan.
OutputManifest Parameter output ITaskItem opsional.

Menentukan nama file manifes output yang dihasilkan. Jika parameter ini tidak ditentukan, nama file output disimpulkan dari identitas manifes yang dihasilkan.
Platform Parameter String opsional.

Menentukan platform target aplikasi. Parameter ini dapat memiliki nilai berikut:

- AnyCPU
- x86
- x64
- Itanium

Jika parameter ini tidak ditentukan, tugas default ke AnyCPU.
Product Parameter String opsional.

Menentukan nama aplikasi. Jika parameter ini tidak ditentukan, nama disimpulkan dari identitas manifes yang dihasilkan. Nama ini digunakan untuk nama pintasan pada menu Mulai dan merupakan bagian dari nama yang muncul dalam kotak dialog Tambahkan atau Hapus Program.
Publisher Parameter String opsional.

Menentukan penerbit aplikasi. Jika parameter ini tidak ditentukan, nama disimpulkan dari pengguna terdaftar atau identitas manifes yang dihasilkan. Nama ini digunakan untuk nama folder pada menu Mulai dan merupakan bagian dari nama yang muncul dalam kotak dialog Tambahkan atau Hapus Program.
RequiresMinimumFramework35SP1 Parameter Boolean opsional.

Jika benar, aplikasi memerlukan .NET Framework 3.5 SP1 atau versi yang lebih baru.
TargetCulture Parameter String opsional.

Mengidentifikasi budaya aplikasi dan menentukan Language bidang identitas perakitan untuk manifes yang dihasilkan. Jika parameter ini tidak ditentukan, diasumsikan bahwa aplikasi tersebut invarian budaya.
TargetFrameworkMoniker Parameter String opsional.

Menentukan moniker kerangka kerja target.
TargetFrameworkProfile Parameter String opsional.

Menentukan profil kerangka kerja target.
TargetFrameworkSubset Parameter String opsional.

Menentukan nama subset .NET Framework ke target.
TargetFrameworkVersion Parameter String opsional.

Menentukan .NET Framework target proyek.
TrustInfoFile Parameter ITaskItem opsional.

Menunjukkan dokumen XML yang menentukan keamanan aplikasi. Elemen akar dalam dokumen XML harus merupakan simpul trustInfo di namespace layanan asmv2. Jika tugas menghasilkan manifes asli, parameter ini diabaikan.
UseApplicationTrust Parameter Boolean opsional.

Jika benar, Productproperti, Publisher, dan SupportUrl ditulis ke manifes aplikasi.

Keterangan

Selain parameter yang tercantum di atas, tugas ini mewarisi parameter dari kelas GenerateManifestBase, yang mewarisi sendiri dari kelas Task. Untuk daftar parameter kelas Tugas, lihat Kelas dasar tugas.

Untuk informasi tentang cara menggunakan GenerateDeploymentManifest tugas, lihat Tugas GenerateApplicationManifest.

Input untuk dependensi dan file dapat dihiasi lebih lanjut dengan metadata item untuk menentukan status penyebaran tambahan untuk setiap item.

Metadata item

Nama metadata Deskripsi
DependencyType Menunjukkan apakah dependensi diterbitkan dan diinstal dengan aplikasi atau prasyarat. Metadata ini berlaku untuk semua dependensi, tetapi tidak digunakan untuk file. Nilai yang tersedia untuk metadata ini adalah:

- Install
- Prerequisite

Instal adalah nilai default.
AssemblyType Menunjukkan apakah dependensi adalah rakitan terkelola atau asli. Metadata ini berlaku untuk semua dependensi, tetapi tidak digunakan untuk file. Nilai yang tersedia untuk metadata ini adalah:

- Managed
- Native
- Unspecified

Unspecified adalah nilai default, yang menunjukkan bahwa generator manifes akan menentukan jenis perakitan secara otomatis.
Group Menunjukkan grup untuk mengunduh file tambahan sesuai permintaan. Nama grup ditentukan oleh aplikasi dan dapat berupa string apa pun. String kosong menunjukkan file bukan bagian dari grup unduhan, yang merupakan default. File yang tidak berada dalam grup adalah bagian dari unduhan aplikasi awal. File dalam grup hanya diunduh ketika secara eksplisit diminta oleh aplikasi menggunakan System.Deployment.Application.

Metadata ini berlaku untuk semua file ketika IsDataFile adalah false dan semua dependensi ketika DependencyType adalah Install.
TargetPath Menentukan bagaimana jalur harus ditentukan dalam manifes yang dihasilkan. Atribut ini valid untuk semua file. Jika atribut ini tidak ditentukan, spesifikasi item akan digunakan. Atribut ini berlaku untuk semua file dan dependensi dengan nilai DependencyType dari Install.
IsDataFile Nilai Boolean metadata yang menunjukkan apakah file tersebut adalah file data atau tidak. File data khusus karena dimigrasikan di antara pembaruan aplikasi. Metadata ini hanya valid untuk file. False merupakan nilai defaultnya.

Contoh 1

Contoh ini menggunakan GenerateApplicationManifest tugas untuk menghasilkan manifes aplikasi ClickOnce dan GenerateDeploymentManifest tugas untuk menghasilkan manifes penyebaran untuk aplikasi dengan satu rakitan. Kemudian menggunakan tugas SignFile untuk menandatangani manifes.

Ini menggambarkan skenario pembuatan manifes paling sederhana di mana manifes ClickOnce dihasilkan untuk satu program. Nama dan identitas default disimpulkan dari perakitan untuk manifes.

Catatan

Dalam contoh di bawah ini, semua biner aplikasi dibuat sebelumnya agar fokus pada aspek pembuatan manifes. Contoh ini menghasilkan penyebaran ClickOnce yang berfungsi penuh.

Catatan

Untuk informasi selengkapnya tentang properti Thumbprint yang digunakan dalam tugas SignFile dalam contoh ini, lihat tugas 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>

Contoh 2

Contoh ini menggunakan tugas GenerateApplicationManifest dan GenerateDeploymentManifest untuk menghasilkan aplikasi ClickOnce dan manifes penyebaran untuk aplikasi dengan satu rakitan, menentukan nama dan identitas manifes.

Contoh ini mirip dengan contoh sebelumnya kecuali nama dan identitas manifes ditentukan secara eksplisit. Selain itu, contoh ini dikonfigurasi sebagai aplikasi online alih-alih aplikasi yang diinstal.

Catatan

Dalam contoh di bawah ini, semua biner aplikasi dibuat sebelumnya agar fokus pada aspek pembuatan manifes. Contoh ini menghasilkan penyebaran ClickOnce yang berfungsi penuh.

Catatan

Untuk informasi selengkapnya tentang properti Thumbprint yang digunakan dalam tugas SignFile dalam contoh ini, lihat tugas 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>

Contoh 3

Contoh ini menggunakan tugas GenerateApplicationManifest dan GenerateDeploymentManifest untuk menghasilkan aplikasi ClickOnce dan manifes penyebaran untuk aplikasi dengan beberapa file dan rakitan.

Catatan

Dalam contoh di bawah ini, semua biner aplikasi dibuat sebelumnya agar fokus pada aspek pembuatan manifes. Contoh ini menghasilkan penyebaran ClickOnce yang berfungsi penuh.

Catatan

Untuk informasi selengkapnya tentang properti Thumbprint yang digunakan dalam tugas SignFile dalam contoh ini, lihat tugas 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>

Contoh 4

Contoh ini menggunakan GenerateApplicationManifest tugas untuk menghasilkan manifes asli untuk aplikasi Test.exe, mereferensikan komponen asli Alpha.dll dan komponen COM yang terisolasi Bravo.dll.

Contoh ini menghasilkan Test.exe.manifest, membuat aplikasi XCOPY dapat disebarkan dan memanfaatkan Pendaftaran Gratis COM.

Catatan

Dalam contoh di bawah ini, semua biner aplikasi dibuat sebelumnya agar fokus pada aspek pembuatan manifes. Contoh ini menghasilkan penyebaran ClickOnce yang berfungsi penuh.

<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>

Baca juga