Поделиться через


Задача GenerateApplicationManifest

Создание манифеста приложения ClickOnce или собственного манифеста. Собственный манифест описывает компонент посредством определения уникального идентификатора для этого компонента и определения всех сборок и файлов, образующих этот компонент. Манифест приложения ClickOnce расширяет собственный манифест посредством указания точки входа и уровня безопасности этого приложения.

Параметры

В следующей таблице описаны параметры задачи GenerateApplicationManifest.

Параметр

Описание

AssemblyName

Необязательный параметр типа String.

Задает поле Name удостоверения сборки для создаваемого манифеста. Если этот параметр не задан, то имя выводится из параметра EntryPoint или InputManifest. Если создать имя невозможно, задача оповещает об ошибке.

AssemblyVersion

Необязательный параметр типа String.

Поле Version удостоверения сборки для создаваемого манифеста. Если этот параметр не указан, используется значение по умолчанию, равное "1.0.0.0".

ClrVersion

Необязательный параметр типа String.

Минимальный номер версии среды CLR, необходимой для приложения. По умолчанию используется номер версии среды CLR, применяемой в системе построения. Если задача создает собственный манифест, данный параметр игнорируется.

ConfigFile

Необязательный параметр ITaskItem[].

Элемент, в котором содержится файл конфигурации приложения. Если задача создает собственный манифест, данный параметр игнорируется.

Dependencies

Необязательный параметр ITaskItem[].

Список элементов, определяющий набор зависимых сборок для созданного манифеста. Каждый элемент можно дополнительно описать в метаданных и указать дополнительное состояние развертывания и тип зависимости. Дополнительные сведения см. далее в разделе "Метаданные элементов".

Description

Необязательный параметр типа String.

Описание приложения или компонента.

EntryPoint

Необязательный параметр ITaskItem[].

Один элемент, указывающий точку входа для создаваемой сборки манифеста.

Для манифеста приложения ClickOnce этот параметр указывает сборку, которая запускается при запуске приложения.

ErrorReportUrl

Необязательный параметр типа [String].

задает URL-адрес веб-страницы, который отображается в диалоговых окнах во время отчетов об ошибках во время установки ClickOnce.

FileAssociations

Необязательный параметр ITaskItem[] .

Задает список из одного или нескольких типов файлов, связанных с манифестом развертывания ClickOnce.

Связи файла действительны, только если требуемой версией .NET Framework является 3.5 или более поздняя.

Files

Необязательный параметр ITaskItem[] .

Файлы, включаемые в манифест. Необходимо указать полный путь к каждому файлу.

HostInBrowser

Необязательный параметр типа [Boolean].

Если true, приложение размещается в браузере (как WPF-приложения браузера).

IconFile

Необязательный параметр ITaskItem[] .

Файл значка приложения. Значок приложения описан в созданном манифесте приложения и используется в меню "Пуск" и в диалоговом окне "Установка и удаление программ". Если этот входной параметр не определен, используется значок по умолчанию. Если задача создает собственный манифест, данный параметр игнорируется.

InputManifest

Необязательный параметр типа ITaskItem.

Входной XML-документ, на основе которого создается манифест. Он позволяет переносить в результирующий манифест такие структурные данные, как сведения о безопасности приложений и настраиваемые определения манифеста. Корневой элемент в XML-документе должен быть узлом сборки в пространстве имен asmv1.

IsolatedComReferences

Необязательный параметр ITaskItem[].

Компоненты COM, изолируемые в создаваемом манифесте. Этот параметр обеспечивает поддержку изолированных компонентов COM для развертывания с использованием COM-компонентов без регистрации. Он позволяет автоматически создать манифест со стандартными определениями регистрации COM. Для реализации этой возможности необходимо, чтобы компоненты COM были зарегистрированы на компьютере построения.

ManifestType

Необязательный параметр типа String.

Тип создаваемого манифеста. Этот параметр может принимать следующие значения:

  • Native

  • ClickOnce

Если этот параметр не указан, то задача использует значение по умолчанию ClickOnce.

MaxTargetPath

Необязательный параметр типа String.

Максимально допустимая длина пути к файлу при развертывании приложения ClickOnce . Если это значение указано, то с ним сверяется длина каждого пути к файлу в приложении. Если какие-либо элементы превышают предел, выдается предупреждение проверки построения. Если этот входной параметр не определен или равен нулю, то проверка не выполняется. Если задача создает собственный манифест, данный параметр игнорируется.

OSVersion

Необязательный параметр типа String.

Минимальный номер версии операционной системы, необходимой для приложения. Например, значение "5.1.2600.0" соответствует Windows XP. Если значение этого параметра не задано, используется значение "4.10.0.0" для операционной системы Windows 98 Second Edition, соответствующей минимальным требованиям платформы .NET Framework. Если задача создает собственный манифест, данный входной параметр игнорируется.

OutputManifest

Необязательный выходной параметр ITaskItem.

Указывает имя созданного файла результатов манифеста. Если этот параметр не задан, то имя выходного файла выводится из удостоверения созданного манифеста.

Platform

Необязательный параметр типа String.

Определяет имя целевой платформы приложения. Этот параметр может принимать следующие значения:

  • AnyCPU

  • x86

  • x64

  • Itanium

Если этот параметр не указан, то задача использует значение по умолчанию AnyCPU.

Product

Необязательный параметр типа String.

Указывает имя приложения. Если этот параметр не задан, то имя файла результата выводится из удостоверения созданного манифеста. Это имя используется для имени ярлыка в меню Пуск и является частью имени, которое появляется в диалоговом окне Установка или удаление программ.

Publisher

Необязательный параметр типа String.

Указывает имя издателя приложения. Если этот параметр не задан, то имя выводится из имени зарегистрированного пользователя или из удостоверения созданного манифеста. Это имя используется для имени папки в меню Пуск и является частью имени, которое появляется в диалоговом окне Установка или удаление программ.

RequiresMinimumFramework35SP1

Необязательный параметр типа Boolean.

Если значение равно true, приложение требует .NET Framework 3.5 SP1 или более поздней версии.

TargetCulture

Необязательный параметр типа String.

Язык и региональные параметры приложения, а также значение в поле Language удостоверения сборки для созданного манифеста. Если этот параметр не задан, то предполагается, что язык и региональные параметры приложения универсальны.

TargetFrameworkMoniker

Необязательный параметр типа [String].

Определяет моникер требуемой версии .NET Framework.

TargetFrameworkProfile

Необязательный параметр типа [String].

Задает профиль целевой платформы.

TargetFrameworkSubset

Необязательный параметр типа [String].

Определяет имя требуемого подмножества .NET Framework.

TargetFrameworkVersion

Необязательный параметр типа [String].

Указывает профиль целевой платформы .NET Framework для проекта.

TrustInfoFile

Необязательный параметр типа ITaskItem.

XML-документ, в котором задан уровень безопасности приложения. Корневой элемент в XML-документе должен быть узлом trustInfo в пространстве имен asmv2. Если задача создает собственный манифест, данный параметр игнорируется.

UseApplicationTrust

Необязательный параметр типа [Boolean].

Если true, свойства Product, Publisher и SupportUrl записываются в манифест приложения.

Заметки

Помимо параметров, которые перечислены выше, эта задача наследует параметры от класса GenerateManifest, который наследует от класса Task. Список параметров класса Task см. в описании класса Базовый класс Task.

Сведения об использовании задачи GenerateDeploymentManifest см. в Задача GenerateApplicationManifest.

Для каждого из входных параметров зависимостей и файлов можно дополнительно указать состояние развертывания в метаданных элементов.

Метаданные элементов

Имя метаданных

Описание

DependencyType

Эти метаданные указывают на то, что зависимость публикуется и устанавливается вместе с приложением либо относится к предварительным требованиям. Эти метаданные допустимы для всех зависимостей, но не используются для файлов. Для этих метаданных доступны следующие значения:

  • Install

  • Prerequisite

Значение по умолчанию — Install.

AssemblyType

Эти метаданные указывают на то, что зависимость является управляемой или собственной сборкой. Эти метаданные допустимы для всех зависимостей, но не используются для файлов. Для этих метаданных доступны следующие значения:

  • Managed

  • Native

  • Unspecified

Значение по умолчанию — Unspecified. Оно показывает, что при создании манифеста тип сборки определится автоматически.

Group

Группа для загрузки дополнительных файлов по требованию. Имя группы определяется приложением и может быть любой строкой. Пустая строка означает, что файл не входит в группу загрузки (по умолчанию). Файлы, не включенные в группу, входят в исходную загрузку приложения. Файлы, включенные в группу, загружаются только по явному запросу приложения с использованием пространства имен System.Deployment.Application.

Эти метаданные допустимы для всех файлов, где в IsDataFile указано false, и всех зависимостей, где в DependencyType указано Install.

TargetPath

Способ определения пути в создаваемом манифесте. Этот атрибут действителен для всех файлов. Если данный атрибут не определен, используется спецификация элементов. Этот атрибут действителен для всех файлов и зависимостей, где в DependencyType указано Install.

IsDataFile

Значение типа Boolean, показывающее, является ли файл файлом данных. Особенность файла данных в том, что он переносится при обновлениях приложения. Эти метаданные применимы только для файлов. False является значением по умолчанию.

Пример

В этом примере задача GenerateApplicationManifest используется для создания манифеста приложения ClickOnce, а задача GenerateDeploymentManifest — для создания манифеста развертывания приложения с одной сборкой. Затем используется задача SignFile для подписи манифестов.

Этот пример является иллюстрацией простейшего возможного сценария создания манифестов, где манифесты ClickOnce создаются для одной программы. Имя и идентификатор по умолчанию выводятся из сборки для данного манифеста.

ПримечаниеПримечание

В приведенном ниже примере все двоичные файлы приложений собраны заранее, чтобы сосредоточить внимание на создании манифестов.В этом примере представлено полностью работоспособное развертывание ClickOnce.

ПримечаниеПримечание

Дополнительные сведения о свойстве Thumbprint, которое используется в задаче SignFile данного примера, см. в разделе Задача SignFile.

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

В этом примере используются задачи GenerateApplicationManifest и GenerateDeploymentManifest для создания манифестов приложения ClickOnce и развертывания для приложения с одной сборкой, и указываются имя и удостоверение манифестов.

Этот пример аналогичен предыдущему за исключением того, что имя и удостоверение заданы явно. Кроме того, этот пример настроен как интернет-приложение, а не как установленное приложение.

ПримечаниеПримечание

В приведенном ниже примере все двоичные файлы приложений собраны заранее, чтобы сосредоточить внимание на создании манифестов.В этом примере представлено полностью работоспособное развертывание ClickOnce.

ПримечаниеПримечание

Дополнительные сведения о свойстве Thumbprint, которое используется в задаче SignFile данного примера, см. в разделе Задача SignFile.

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

В этом примере используются задачи GenerateApplicationManifest и GenerateDeploymentManifest для создания манифестов приложения ClickOnce и развертывания для приложения с несколькими файлами и сборками.

ПримечаниеПримечание

В приведенном ниже примере все двоичные файлы приложений собраны заранее, чтобы сосредоточить внимание на создании манифестов.В этом примере представлено полностью работоспособное развертывание ClickOnce.

ПримечаниеПримечание

Дополнительные сведения о свойстве Thumbprint, которое используется в задаче SignFile данного примера, см. в разделе Задача SignFile.

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

В этом примере используется задача GenerateApplicationManifest для создания собственного манифеста приложения Test.exe, ссылающегося на собственный компонент Alpha.dll и изолированный COM-компонент Bravo.dll.

В этом примере на выходе получается манифест Test.exe.manifest, позволяющий развертывать приложение, скопированное командой XCOPY, то есть использовать COM-компоненты без регистрации.

ПримечаниеПримечание

В приведенном ниже примере все двоичные файлы приложений собраны заранее, чтобы сосредоточить внимание на создании манифестов.В этом примере представлено полностью работоспособное развертывание ClickOnce.

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

См. также

Ссылки

Задача GenerateDeploymentManifest

Задача SignFile

Основные понятия

Задачи MSBuild

Другие ресурсы

Справочные сведения о задачах MSBuild