言語

GenerateApplicationManifest タスク

ClickOnce アプリケーション マニフェストまたはネイティブ マニフェストを生成します。 ネイティブ マニフェストでは、コンポーネントの一意の ID を定義し、コンポーネントを構成するすべてのアセンブリとファイルを識別することで、コンポーネントを記述します。 ClickOnce アプリケーション マニフェストは、アプリケーションのエントリ ポイントを示し、アプリケーションのセキュリティ レベルを指定することで、ネイティブ マニフェストを拡張します。

Parameters

次の表では、 GenerateApplicationManifest タスクのパラメーターについて説明します。

パラメーター Description
AssemblyName 省略可能な String パラメーター。

生成されたマニフェストのアセンブリ ID の Name フィールドを指定します。 このパラメーターが指定されていない場合、名前は EntryPoint または InputManifest パラメーターから推論されます。 名前を作成できない場合、タスクはエラーをスローします。
AssemblyVersion 省略可能な String パラメーター。

生成されたマニフェストのアセンブリ ID の Version フィールドを指定します。 このパラメーターを指定しない場合は、既定値の "1.0.0.0" が使用されます。
ClrVersion 省略可能な String パラメーター。

アプリケーションで必要な共通言語ランタイム (CLR) の最小バージョンを指定します。 既定値は、ビルド システムで使用されている CLR バージョンです。 タスクがネイティブ マニフェストを生成している場合、このパラメーターは無視されます。
ConfigFile 省略可能な ITaskItem[] パラメーター。

アプリケーション構成ファイルを含む項目を指定します。 タスクがネイティブ マニフェストを生成している場合、このパラメーターは無視されます。
Dependencies 省略可能な ITaskItem[] パラメーター。

生成されたマニフェストの依存アセンブリのセットを定義する項目リストを指定します。 各項目は、追加のデプロイ状態と依存の種類を示すために、項目メタデータによってさらに説明できます。 詳細については、「 項目メタデータ」を参照してください。
Description 省略可能な String パラメーター。

アプリケーションまたはコンポーネントの説明を指定します。
EntryPoint 省略可能な ITaskItem[] パラメーター。

生成されたマニフェスト アセンブリのエントリ ポイントを示す 1 つの項目を指定します。

ClickOnce アプリケーション マニフェストの場合、このパラメーターは、アプリケーションの実行時に開始されるアセンブリを指定します。
ErrorReportUrl 省略可能な System.String パラメーター。

ClickOnce インストールのエラー レポート中にダイアログ ボックスに表示される Web ページの URL を指定します。
FileAssociations 省略可能な ITaskItem[] パラメーター。

ClickOnce 配置マニフェストに関連付けられている 1 つ以上のファイルの種類の一覧を指定します。

ファイルの関連付けは、.NET Framework 3.5 以降が対象の場合にのみ有効です。
Files 省略可能な ITaskItem[] パラメーター。

マニフェストに含めるファイル。 各ファイルの完全なパスを指定します。
HostInBrowser 省略可能な Boolean パラメーター。

true場合、アプリケーションはブラウザーでホストされます (Web ブラウザー アプリケーションWPF同様)。
IconFile 省略可能な ITaskItem[] パラメーター。

アプリケーション アイコン ファイルを示します。 アプリケーション アイコンは、生成されたアプリケーション マニフェストで表され、[ スタート] メニュー と [プログラムの 追加と削除 ] ダイアログに使用されます。 この入力が指定されていない場合は、既定のアイコンが使用されます。 タスクがネイティブ マニフェストを生成している場合、このパラメーターは無視されます。
InputManifest 省略可能な ITaskItem パラメーター。

マニフェスト ジェネレーターのベースとして機能する入力 XML ドキュメントを示します。 これにより、アプリケーション セキュリティやカスタム マニフェスト定義などの構造化データを出力マニフェストに反映できます。 XML ドキュメントのルート要素は、asmv1 名前空間のアセンブリ ノードである必要があります。
IsolatedComReferences 省略可能な ITaskItem[] パラメーター。

生成されたマニフェストで分離する COM コンポーネントを指定します。 このパラメーターは、"Registration Free COM" デプロイ用に COM コンポーネントを分離する機能をサポートします。 これは、標準の COM 登録定義を使用してマニフェストを自動生成することによって機能します。 ただし、COM コンポーネントが正常に機能するためには、ビルド マシンに登録する必要があります。
LauncherBasedDeployment 省略可能なブール型パラメーター。

.NET Core 3.1、.NET 5 以降のバージョン用にビルドするときにこれをTrueに設定して、アプリケーション ホストの実行可能ファイルapphost.exeをビルドした後、アプリケーションの実行可能ファイルの名前が想定される実行可能ファイル名に変更されるようにします。
ManifestType 省略可能な String パラメーター。

生成するマニフェストの種類を指定します。 このパラメーターには、以下の値を指定できます。

- Native
- ClickOnce

このパラメーターを指定しない場合、タスクは既定で ClickOnceされます。
MaxTargetPath 省略可能な String パラメーター。

ClickOnce アプリケーション配置でのファイル パスの最大許容長を指定します。 この値を指定すると、アプリケーション内の各ファイル パスの長さが、この制限に照らしてチェックされます。 制限を超える項目は、ビルド警告で発生します。 この入力が指定されていない場合、またはゼロの場合、検査は実行されません。 タスクがネイティブ マニフェストを生成している場合、このパラメーターは無視されます。
OSVersion 省略可能な String パラメーター。

アプリケーションに必要なオペレーティング システム (OS) の最小バージョンを指定します。 このパラメーターを指定しない場合は、.NET Framework でサポートされている最小 OS である値 "4.10.0.0" が使用されます。 タスクがネイティブ マニフェストを生成している場合、この入力は無視されます。
OutputManifest オプション ITaskItem 出力パラメーター。

生成された出力マニフェスト ファイルの名前を指定します。 このパラメーターを指定しない場合、出力ファイルの名前は、生成されたマニフェストの ID から推論されます。
Platform 省略可能な String パラメーター。

アプリケーションのターゲット プラットフォームを指定します。 このパラメーターには、以下の値を指定できます。

- AnyCPU
- x86
- x64
- Itanium

このパラメーターを指定しない場合、タスクは既定で AnyCPUされます。
Product 省略可能な String パラメーター。

アプリケーションの名前を指定します。 このパラメーターを指定しない場合、生成されたマニフェストの ID から名前が推論されます。 この名前は 、[スタート ] メニューのショートカット名に使用され、[ プログラムの追加と削除 ] ダイアログ ボックスに表示される名前の一部です。
Publisher 省略可能な String パラメーター。

アプリケーションの発行元を指定します。 このパラメーターを指定しない場合、名前は登録済みユーザーまたは生成されたマニフェストの ID から推論されます。 この名前は、[ スタート ] メニューのフォルダー名に使用され、[ プログラムの追加と削除 ] ダイアログ ボックスに表示される名前の一部です。
RequiresMinimumFramework35SP1 省略可能な Boolean パラメーター。

true の場合、アプリケーションには .NET Framework 3.5 SP1 以降のバージョンが必要です。
TargetCulture 省略可能な String パラメーター。

アプリケーションのカルチャを識別し、生成されたマニフェストのアセンブリ ID の Language フィールドを指定します。 このパラメーターが指定されていない場合、アプリケーションはカルチャに依存しないと見なされます。
TargetFrameworkMoniker 省略可能な String パラメーター。

ターゲット フレームワーク モニカーを指定します。
TargetFrameworkProfile 省略可能な String パラメーター。

ターゲット フレームワーク プロファイルを指定します。
TargetFrameworkSubset 省略可能な String パラメーター。

ターゲットとする .NET Framework サブセットの名前を指定します。
TargetFrameworkVersion 省略可能な String パラメーター。

プロジェクトのターゲット .NET フレームワークを指定します。
TrustInfoFile 省略可能な ITaskItem パラメーター。

アプリケーションのセキュリティを指定する XML ドキュメントを示します。 XML ドキュメントのルート要素は、asmv2 名前空間の trustInfo ノードである必要があります。 タスクがネイティブ マニフェストを生成している場合、このパラメーターは無視されます。
UseApplicationTrust 省略可能な Boolean パラメーター。

true の場合、 ProductPublisher、および SupportUrl のプロパティがアプリケーション マニフェストに書き込まれます。

解説

このタスクは、上記のパラメーターに加えて、 GenerateManifestBase クラスからパラメーターを継承し、それ自体は Task クラスから継承します。 Task クラスのパラメーターの一覧については、「 Task 基底クラス」を参照してください。

GenerateDeploymentManifest タスクの使用方法については、「GenerateApplicationManifest タスク」を参照してください。

依存関係とファイルの入力は、項目のメタデータでさらに装飾され、各項目の追加の展開状態を指定できます。

項目のメタデータ

メタデータ名 Description
DependencyType 依存関係が公開され、アプリケーションと共にインストールされるか、前提条件と共にインストールされるかを示します。 このメタデータはすべての依存関係に対して有効ですが、ファイルには使用されません。 このメタデータで使用できる値は次のとおりです。

- Install
- Prerequisite

インストールは既定値です。
AssemblyType 依存関係がマネージド アセンブリかネイティブ アセンブリかを示します。 このメタデータはすべての依存関係に対して有効ですが、ファイルには使用されません。 このメタデータで使用できる値は次のとおりです。

- Managed
- Native
- Unspecified

Unspecified は既定値です。これは、マニフェスト ジェネレーターによってアセンブリの種類が自動的に決定されることを示します。
Group 追加のファイルをオンデマンドでダウンロードするグループを示します。 グループ名はアプリケーションによって定義され、任意の文字列にすることができます。 空の文字列は、ファイルがダウンロード グループの一部ではないことを示します。これは既定です。 グループに含まれていないファイルは、アプリケーションの初期ダウンロードの一部です。 グループ内のファイルは、 <xref:System.Deployment.Application>を使用してアプリケーションによって明示的に要求された場合にのみダウンロードされます。

このメタデータは、 IsDataFilefalse されているすべてのファイルと、 DependencyTypeInstallされているすべての依存関係に対して有効です。
TargetPath 生成されたマニフェストでパスを定義する方法を指定します。 この属性は、すべてのファイルに対して有効です。 この属性が指定されていない場合は、項目の指定が使用されます。 この属性は、 DependencyType 値が Installのすべてのファイルと依存関係に対して有効です。
IsDataFile ファイルがデータ ファイルであるかどうかを示す Boolean メタデータ値。 データ ファイルは、アプリケーションの更新間で移行されるという点で特別です。 このメタデータは、ファイルに対してのみ有効です。 既定値は False です。

例 1

この例では、 GenerateApplicationManifest タスクを使用して ClickOnce アプリケーション マニフェストを生成し、 GenerateDeploymentManifest タスクを使用して、1 つのアセンブリを持つアプリケーションの配置マニフェストを生成します。 次に、 SignFile タスクを使用してマニフェストに署名します。

これは、ClickOnce マニフェストが 1 つのプログラムに対して生成される最も簡単なマニフェスト生成シナリオを示しています。 既定の名前と ID は、マニフェストのアセンブリから推論されます。

次の例では、マニフェスト生成の側面に重点を置くために、すべてのアプリケーション バイナリが事前に構築されています。 この例では、完全に動作する ClickOnce 配置が生成されます。

この例のSignFile タスクで使用されるThumbprint プロパティの詳細については、「SignFile タスク」を参照してください。

<Project DefaultTargets="Build">

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

例 2

この例では、 GenerateApplicationManifest タスクと GenerateDeploymentManifest タスクを使用して、マニフェストの名前と ID を指定して、1 つのアセンブリを持つアプリケーションの ClickOnce アプリケーション マニフェストと配置マニフェストを生成します。

この例は、マニフェストの名前と ID が明示的に指定されている点を除き、前の例と似ています。 また、この例は、インストールされているアプリケーションではなくオンライン アプリケーションとして構成されます。

次の例では、マニフェスト生成の側面に重点を置くために、すべてのアプリケーション バイナリが事前に構築されています。 この例では、完全に動作する ClickOnce 配置が生成されます。

この例のSignFile タスクで使用されるThumbprint プロパティの詳細については、「SignFile タスク」を参照してください。

<Project DefaultTargets="Build">

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

例 3

この例では、 GenerateApplicationManifest タスクと GenerateDeploymentManifest タスクを使用して、複数のファイルとアセンブリを含むアプリケーションの ClickOnce アプリケーションマニフェストと配置マニフェストを生成します。

次の例では、マニフェスト生成の側面に重点を置くために、すべてのアプリケーション バイナリが事前に構築されています。 この例では、完全に動作する ClickOnce 配置が生成されます。

この例のSignFile タスクで使用されるThumbprint プロパティの詳細については、「SignFile タスク」を参照してください。

<Project DefaultTargets="Build">

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

例 4

この例では、 GenerateApplicationManifest タスクを使用して、アプリケーション Test.exeのネイティブ マニフェストを生成し、ネイティブ コンポーネント Alpha.dll と分離された COM コンポーネント Bravo.dllを参照します。

この例では 、Test.exe.manifest を生成し、アプリケーション XCOPY を配置可能にし、Registration Free COM を利用します。

次の例では、マニフェスト生成の側面に重点を置くために、すべてのアプリケーション バイナリが事前に構築されています。 この例では、完全に動作する ClickOnce 配置が生成されます。

<Project DefaultTargets="Build">

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

こちらも参照ください