GenerateApplicationManifest görevi

ClickOnce uygulama bildirimi veya yerel bildirim oluşturur. Yerel bildirim, bileşen için benzersiz bir kimlik tanımlayarak ve bileşeni oluşturan tüm derlemeleri ve dosyaları tanımlayarak bileşeni açıklar. ClickOnce uygulama bildirimi, uygulamanın giriş noktasını belirterek ve uygulama güvenlik düzeyini belirterek yerel bildirimi genişletir.

Parametreler

Aşağıdaki tabloda görevin parametreleri GenerateApplicationManifest açıklanmaktadır.

Parametre Açıklama
AssemblyName İsteğe bağlı String parametre.

Name Oluşturulan bildirim için derleme kimliğinin alanını belirtir. Bu parametre belirtilmezse, ad veya InputManifest parametrelerinden EntryPoint çıkarılır. Ad oluşturulamıyorsa, görev bir hata oluşturur.
AssemblyVersion İsteğe bağlı String parametre.

Version Oluşturulan bildirim için derleme kimliğinin alanını belirtir. Bu parametre belirtilmezse, varsayılan "1.0.0.0" değeri kullanılır.
ClrVersion İsteğe bağlı String parametre.

Uygulama için gereken en düşük Ortak Dil Çalışma Zamanı (CLR) sürümünü belirtir. Varsayılan değer, derleme sistemi tarafından kullanılan CLR sürümüdür. Görev yerel bir bildirim oluşturuyorsa, bu parametre yoksayılır.
ConfigFile İsteğe bağlı ITaskItem[] parametre.

Uygulama yapılandırma dosyasını içeren öğeyi belirtir. Görev yerel bir bildirim oluşturuyorsa, bu parametre yoksayılır.
Dependencies İsteğe bağlı ITaskItem[] parametre.

Oluşturulan bildirim için bağımlı derleme kümesini tanımlayan bir öğe listesi belirtir. Her öğe, ek dağıtım durumunu ve bağımlılık türünü göstermek için öğe meta verileri tarafından daha ayrıntılı olarak açıklanabilir. Daha fazla bilgi için bkz . Öğe meta verileri.
Description İsteğe bağlı String parametre.

Uygulama veya bileşen için açıklamayı belirtir.
EntryPoint İsteğe bağlı ITaskItem[] parametre.

Oluşturulan bildirim derlemesi için giriş noktasını gösteren tek bir öğe belirtir.

ClickOnce uygulama bildirimi için bu parametre, uygulama çalıştırıldığında başlayan derlemeyi belirtir.
ErrorReportUrl İsteğe bağlı System.String parametre.

ClickOnce yüklemelerindeki hata raporları sırasında iletişim kutularında görüntülenen web sayfasının URL'sini belirtir.
FileAssociations İsteğe bağlı ITaskItem[] parametre.

ClickOnce dağıtım bildirimiyle ilişkilendirilmiş bir veya daha fazla dosya türünün listesini belirtir.

Dosya ilişkilendirmeleri yalnızca .NET Framework 3.5 veya üzeri hedeflendiğinde geçerlidir.
Files İsteğe bağlı ITaskItem[] parametre.

Bildirime eklenecek dosyalar. Her dosya için tam yolu belirtin.
HostInBrowser İsteğe bağlı Boolean parametre.

ise true, uygulama bir tarayıcıda barındırılır (WPF Web Tarayıcısı Uygulamaları gibi).
IconFile İsteğe bağlı ITaskItem[] parametre.

Uygulama simgesi dosyasını gösterir. Uygulama simgesi, oluşturulan uygulama bildiriminde ifade edilir ve Başlat Menüsü ve Program Ekle/Kaldır iletişim kutusu için kullanılır. Bu giriş belirtilmezse, varsayılan bir simge kullanılır. Görev yerel bir bildirim oluşturuyorsa, bu parametre yoksayılır.
InputManifest İsteğe bağlı ITaskItem parametre.

Bildirim oluşturucu için temel görevi görecek giriş XML belgesini gösterir. Bu, uygulama güvenliği veya özel bildirim tanımları gibi yapılandırılmış verilerin çıkış bildirimine yansıtılmasını sağlar. XML belgesindeki kök öğenin asmv1 ad alanında bir derleme düğümü olması gerekir.
IsolatedComReferences İsteğe bağlı ITaskItem[] parametre.

Oluşturulan bildirimde yalıtmak için COM bileşenlerini belirtir. Bu parametre, "KayıtSız COM" dağıtımı için COM bileşenlerini yalıtma özelliğini destekler. Standart COM kayıt tanımlarıyla bir bildirimi otomatik olarak oluşturarak çalışır. Ancak, bunun düzgün çalışması için COM bileşenlerinin derleme makinesine kaydedilmesi gerekir.
LauncherBasedDeployment İsteğe bağlı Boole parametresi.

True Uygulama ana bilgisayarı apphost.exe dosyasını derledikten sonra uygulama yürütülebilir dosyasının beklenen yürütülebilir adla yeniden adlandırıldığından emin olmak için .NET Core 3.1, .NET 5 ve sonraki sürümleri oluştururken bunu olarak ayarlayın.
ManifestType İsteğe bağlı String parametre.

Oluşturulacak bildirim türünü belirtir. Bu parametre aşağıdaki değerlere sahip olabilir:

- Native
- ClickOnce

Bu parametre belirtilmezse, görev varsayılan olarak olur ClickOnce.
MaxTargetPath İsteğe bağlı String parametre.

ClickOnce uygulama dağıtımında bir dosya yolunun izin verilen uzunluk üst sınırını belirtir. Bu değer belirtilirse, uygulamadaki her dosya yolunun uzunluğu bu sınıra göre denetlenebilir. Sınırı aşan tüm öğeler bir derleme uyarısında yükseltilecektir. Bu giriş belirtilmezse veya sıfırsa, hiçbir denetim gerçekleştirilmez. Görev yerel bir bildirim oluşturuyorsa, bu parametre yoksayılır.
OSVersion İsteğe bağlı String parametre.

Uygulama için gereken en düşük işletim sistemi (OS) sürümünü belirtir. Bu parametre belirtilmezse , .NET Framework'ün desteklenen en düşük işletim sistemi olan "4.10.0.0" değeri kullanılır. Görev yerel bir bildirim oluşturuyorsa, bu giriş yoksayılır.
OutputManifest İsteğe bağlı ITaskItem çıkış parametresi.

Oluşturulan çıkış bildirim dosyasının adını belirtir. Bu parametre belirtilmezse, çıktı dosyasının adı oluşturulan bildirimin kimliğinden çıkarılır.
Platform İsteğe bağlı String parametre.

Uygulamanın hedef platformunu belirtir. Bu parametre aşağıdaki değerlere sahip olabilir:

- AnyCPU
- x86
- x64
- Itanium

Bu parametre belirtilmezse, görev varsayılan olarak olur AnyCPU.
Product İsteğe bağlı String parametre.

Uygulamanın adını belirtir. Bu parametre belirtilmezse, ad oluşturulan bildirimin kimliğinden çıkarılır. Bu ad, Başlat menüsündeki kısayol adı için kullanılır ve Program Ekle veya Kaldır iletişim kutusunda görünen adın bir parçasıdır.
Publisher İsteğe bağlı String parametre.

Uygulamanın yayımcısını belirtir. Bu parametre belirtilmezse, ad kayıtlı kullanıcıdan veya oluşturulan bildirimin kimliğinden çıkarılır. Bu ad, Başlat menüsündeki klasör adı için kullanılır ve Program Ekle veya Kaldır iletişim kutusunda görünen adın bir parçasıdır.
RequiresMinimumFramework35SP1 İsteğe bağlı Boolean parametre.

True ise, uygulama .NET Framework 3.5 SP1 veya daha yeni bir sürüm gerektirir.
TargetCulture İsteğe bağlı String parametre.

Uygulamanın kültürünü tanımlar ve oluşturulan bildirim için derleme kimliğinin alanını belirtir Language . Bu parametre belirtilmezse, uygulamanın kültür sabiti olduğu varsayılır.
TargetFrameworkMoniker İsteğe bağlı String parametre.

Hedef çerçeve adını belirtir.
TargetFrameworkProfile İsteğe bağlı String parametre.

Hedef çerçeve profilini belirtir.
TargetFrameworkSubset İsteğe bağlı String parametre.

Hedef eklenecek .NET Framework alt kümesinin adını belirtir.
TargetFrameworkVersion İsteğe bağlı String parametre.

Projenin hedef .NET Framework'lerini belirtir.
TrustInfoFile İsteğe bağlı ITaskItem parametre.

Uygulama güvenliğini belirten bir XML belgesini gösterir. XML belgesindeki kök öğenin asmv2 ad alanında bir trustInfo düğümü olması gerekir. Görev yerel bir bildirim oluşturuyorsa, bu parametre yoksayılır.
UseApplicationTrust İsteğe bağlı Boolean parametre.

True ise, Product, Publisherve SupportUrl özellikleri uygulama bildirimine yazılır.

Açıklamalar

Yukarıda listelenen parametrelere ek olarak, bu görev kendi sınıfından GenerateManifestBase devralan sınıfından Task parametreleri devralır. Task sınıfının parametrelerinin listesi için bkz . Görev temel sınıfı.

Görevin nasıl kullanılacağı GenerateDeploymentManifest hakkında bilgi için bkz . GenerateApplicationManifest görevi.

Bağımlılıklara ve dosyalara yönelik girişler, her öğe için ek dağıtım durumu belirtmek üzere öğe meta verileriyle daha ayrıntılı bir şekilde dekore edilebilir.

Öğe meta verileri

Meta veri adı Açıklama
DependencyType Bağımlılığın uygulamayla birlikte yayımlanıp yüklenip yüklenmediğini veya bir önkoşul olup olmadığını gösterir. Bu meta veriler tüm bağımlılıklar için geçerlidir, ancak dosyalar için kullanılmaz. Bu meta veriler için kullanılabilir değerler şunlardır:

- Install
- Prerequisite

Yükleme varsayılan değerdir.
AssemblyType Bağımlılığın yönetilen bir derleme mi yoksa yerel bir derleme mi olduğunu gösterir. Bu meta veriler tüm bağımlılıklar için geçerlidir, ancak dosyalar için kullanılmaz. Bu meta veriler için kullanılabilir değerler şunlardır:

- Managed
- Native
- Unspecified

Unspecified , bildirim oluşturucusunun derleme türünü otomatik olarak belirleyeceğini gösteren varsayılan değerdir.
Group İsteğe bağlı ek dosyaları indirmek için grubu gösterir. Grup adı uygulama tarafından tanımlanır ve herhangi bir dize olabilir. Boş dize, dosyanın varsayılan olan indirme grubunun parçası olmadığını gösterir. Grupta olmayan dosyalar, ilk uygulama indirme işleminin bir parçasıdır. Bir gruptaki dosyalar yalnızca kullanılarak System.Deployment.Applicationuygulama tarafından açıkça istendiğinde indirilir.

Bu meta veriler, olduğu tüm IsDataFilefalse dosyalar ve olduğu tüm bağımlılıklar DependencyTypeInstalliçin geçerlidir.
TargetPath Oluşturulan bildirimde yolun nasıl tanımlanması gerektiğini belirtir. Bu öznitelik tüm dosyalar için geçerlidir. Bu öznitelik belirtilmezse, öğe belirtimi kullanılır. Bu öznitelik, değeri Installolan DependencyType tüm dosyalar ve bağımlılıklar için geçerlidir.
IsDataFile Dosyanın Boolean bir veri dosyası olup olmadığını gösteren meta veri değeri. Veri dosyası, uygulama güncelleştirmeleri arasında geçirildiğinde özeldir. Bu meta veriler yalnızca dosyalar için geçerlidir. False varsayılan değerdir.

Örnek 1

Bu örnekte, clickOnce uygulama bildirimi oluşturmak için görev ve tek bir derlemeye GenerateDeploymentManifest sahip bir uygulama için dağıtım bildirimi oluşturma görevi kullanılırGenerateApplicationManifest. Ardından, bildirimleri imzalamak için görevi kullanır SignFile .

Bu, tek bir program için ClickOnce bildirimlerinin oluşturulduğu mümkün olan en basit bildirim oluşturma senaryosunu gösterir. Bildirim için derlemeden varsayılan bir ad ve kimlik çıkarılır.

Not

Aşağıdaki örnekte, bildirim oluşturma yönlerine odaklanmak için tüm uygulama ikili dosyaları önceden oluşturulmuştır. Bu örnek tam olarak çalışan bir ClickOnce dağıtımı oluşturur.

Not

Bu örnekte görevde kullanılan özellik hakkında Thumbprint daha fazla bilgi için bkz. SignFile görevi.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>

Örnek 2

Bu örnek, tek bir derlemeye GenerateApplicationManifest sahip bir uygulama için clickOnce uygulaması ve dağıtım bildirimleri oluşturmak için ve GenerateDeploymentManifest görevlerini kullanır ve bildirimlerin adını ve kimliğini belirtir.

Bu örnek, bildirimlerin adı ve kimliği açıkça belirtilmemiş olması dışında önceki örneğe benzer. Ayrıca bu örnek, yüklü bir uygulama yerine çevrimiçi uygulama olarak yapılandırılır.

Not

Aşağıdaki örnekte, bildirim oluşturma yönlerine odaklanmak için tüm uygulama ikili dosyaları önceden oluşturulmuştır. Bu örnek tam olarak çalışan bir ClickOnce dağıtımı oluşturur.

Not

Bu örnekte görevde kullanılan özellik hakkında Thumbprint daha fazla bilgi için bkz. SignFile görevi.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>

Örnek 3

Bu örnekte ve GenerateDeploymentManifest görevleri kullanılarak GenerateApplicationManifest birden çok dosya ve derlemeye sahip bir uygulama için ClickOnce uygulaması ve dağıtım bildirimleri oluşturulur.

Not

Aşağıdaki örnekte, bildirim oluşturma yönlerine odaklanmak için tüm uygulama ikili dosyaları önceden oluşturulmuştır. Bu örnek tam olarak çalışan bir ClickOnce dağıtımı oluşturur.

Not

Bu örnekte görevde kullanılan özellik hakkında Thumbprint daha fazla bilgi için bkz. SignFile görevi.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>

Örnek 4

Bu örnekte, yerel bileşen Alpha.dll ve yalıtılmış COM bileşeni Bravo.dll'ye başvuruda bulunan Test.exe uygulaması için yerel bir bildirim oluşturmak üzere görevi kullanılırGenerateApplicationManifest.

Bu örnek Test.exe.manifest dosyasını üreterek XCOPY uygulamasını dağıtılabilir hale getirir ve KayıtSız COM'un avantajlarından yararlanır.

Not

Aşağıdaki örnekte, bildirim oluşturma yönlerine odaklanmak için tüm uygulama ikili dosyaları önceden oluşturulmuştır. Bu örnek tam olarak çalışan bir ClickOnce dağıtımı oluşturur.

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

Ayrıca bkz.