マニフェストの生成および編集ツール (Mage.exe)

ビューの切り替え:
スクリプトなし
.NET Framework ツール
マニフェストの生成および編集ツール (Mage.exe)

マニフェスの生成および編集ツール (Mage.exe) は、アプリケーション マニフェストおよび配置マニフェストの作成と編集をサポートするコマンド ライン ツールです。コマンド ライン ツールであるため、Mage.exe は、バッチ スクリプトから実行することも、ASP.NET アプリケーションなど他の Windows ベースのアプリケーションから実行することもできます。

Mage.exe の代わりに、グラフィカルなクライアント プログラムである MageUI.exe を使用することもできます。詳細については、「マニフェスト生成および編集ツールのグラフィカル クライアント (MageUI.exe)」を参照してください。


Mage [commands] [commandOptions]

パラメータ

コマンド 説明

-cc, ClearApplicationCache

すべてのオンライン専用アプリケーションのダウンロード アプリケーション キャッシュをクリアします。

-n, -New fileType [newOptions]

指定された種類のファイルを新規作成します。有効な種類は、次のとおりです。

  • [Deployment] : 配置マニフェストを新規作成します。

  • [Application] : アプリケーション マニフェストを新規作成します。

このコマンドで他のパラメータを指定しなかった場合は、適切な既定のタグおよび属性値を使用して、適切な種類のファイルが作成されます。

マニフェストの <dependency> セクションに追加されたアプリケーション用のすべてのアセンブリを使用して、アプリケーション マニフェストを作成する場合は、–FromDirectory オプション (次の表を参照) を使用します。

-u, -Update [filePath] [updateOptions]

1 つ以上の変更をマニフェスト ファイルに加えます。編集中のファイルの種類を指定する必要はありません。Mage.exe では、一連のヒューリスティックを使用してファイルを調査し、配置マニフェストであるのか、アプリケーション マニフェストであるのかを判定します。

ファイルが証明書で署名済みの場合に -Update を指定すると、キー署名ブロックが削除されます。これは、キー署名にはファイルのハッシュが含まれているため、ファイルを変更するとハッシュが無効になるためです。

-s, -Sign [signOptions]

証明書を使用してファイルに署名します。署名は、XML 要素としてファイルに挿入されます。

-h, -Help

使用可能なすべてのコマンドおよびそのオプションの説明が表示されます。

-v, -Verbose

実行中に行われる処理についての詳細情報が表示されます。

次の表は、–New コマンドおよび –Update コマンドでサポートされているオプションを示しています。

オプション 説明

-appc, -AppCodeBase manifestReference

(配置マニフェストのみ) アプリケーション マニフェスト ファイルへの URL またはファイル パス参照を挿入します。このファイルは、アプリケーション マニフェストへの完全パスである必要があります。

-appm, -AppManifest manifestPath

(配置マニフェストのみ) 配置のアプリケーション マニフェストへの参照を、その配置マニフェストに挿入します。

manifestPath に指定したファイルは存在する必要があります。存在しない場合、Mage.exe はエラーを発行します。manifestPath の参照先のファイルがアプリケーション マニフェストでない場合、Mage.exe はエラーを発行します。

-cf, -CertFile filePath

(すべてのファイルの種類) マニフェストに署名するためのデジタル証明書の場所を指定します。証明書にパスワードが必要な場合は、このオプションを –Password オプションと共に使用できます。

-ch, -CertHash hashSignature

(すべてのファイルの種類) クライアント コンピュータの個人証明書ストアに格納されているデジタル証明書のハッシュです。これは、Windows の証明書コンソールに表示されるデジタル証明書の拇印文字列に対応しています。

hashSignature には、大文字も小文字も使用できます。また、1 つの文字列で指定することも、8 進数の各拇印文字を空白で区切り、拇印全体を引用符で囲んで指定することもできます。

-fd, -FromDirectory directoryPath

(アプリケーション マニフェストのみ) directoryPath で見つかったすべてのアセンブリの説明を含めたアプリケーション マニフェストを作成します。directoryPath は、配置対象のアプリケーションが格納されているディレクトリです。Mage.exe では、ディレクトリ内のファイルごとに、そのファイルがアセンブリなのかスタティック ファイルなのかが判断されます。アセンブリの場合は、<dependency> タグおよび installFrom 属性が、アセンブリ名、コード ベースおよびバージョンと共に、アプリケーションに追加されます。スタティック ファイルの場合は、<file> タグが追加されます。また、Mage.exe は、簡単な一連のヒューリスティックによってアプリケーションのメイン実行可能モジュールを検出し、この実行可能モジュールを ClickOnce アプリケーションのエントリ ポイントとしてマニフェストでマークします。

Mage.exe では、ファイルを "データ" ファイルとしてマークすることはありません。これは手動で行う必要があります。詳細については、「方法 : ClickOnce アプリケーションにデータ ファイルを含める」を参照してください。

Mage.exe では、各ファイルのサイズに基づいて、各ファイルのハッシュも生成されます。ClickOnce では、マニフェスト作成後に、配置の各ファイルが改ざんされていないことを確認するためにこれらのハッシュを使用します。配置対象のファイルに変更を加えた場合には、Mage.exe を –Update コマンドおよび –FromDirectory オプションを付けて実行すると、参照している全ファイルのハッシュおよびアセンブリ バージョンを更新できます。

-FromDirectory を指定すると、directoryPath で見つかった全サブディレクトリの全ファイルが含まれます。

–FromDirectory–Update コマンドと共に使用すると、アプリケーション マニフェスト内のファイルのうち、このディレクトリに存在しなくなったファイルが Mage.exe によってマニフェストから削除されます。

-I, -Install willInstall

(配置マニフェストのみ) ClickOnce アプリケーションをローカル コンピュータにインストールするのか、Web サイトで実行するのかを指定します。アプリケーションをインストールすると、アプリケーションは Windows の [スタート] メニューに表示されます。有効な値は、"true" または "t"、および "false" または "f" です。指定しない場合の既定値は "true" です。

–RequiredUpdate オプションを指定した場合には、-Install に渡した値に関係なく、アプリケーションがインストールされます。

-mv, -MinVersion [version]

(配置マニフェストのみ) ユーザーが実行できる、このアプリケーションの最小バージョンです。このフラグで指定したバージョンが、アプリケーションの最低限必要なバージョンになります。大幅に変更された更新を含むバージョンや、重大なセキュリティ問題を解決したバージョンの製品をリリースした場合は、このフラグを使用すると、この更新バージョンを必ずインストールするように指定でき、ユーザーは古いバージョンを実行できなくなります。

バージョンを指定しない場合、Mage.exe は -Version フラグで指定された、ClickOnce 配置マニフェストに示されたバージョンを使用します。

version は、-Version フラグの引数と同じ意味を持ちます。

-n, -Name nameString

(すべてのファイルの種類) アプリケーションを識別するための名前です。ClickOnce では、[スタート] メニュー (アプリケーションをインストールする場合) や [Permission Elevation] ダイアログ ボックスでこのアプリケーションを示す名前として、この名前が使用されます。名前を指定しない場合の既定値は "-deploy" です。

-pwd, -Password passwd

(すべてのファイルの種類) デジタル証明書でマニフェストに署名する場合に使用するパスワードです。–CertFile オプションと共に使用する必要があります。

-p, Processor processorValue

(配置マニフェストおよびアプリケーション マニフェストのみ) このアプリケーションを実行するマイクロプロセッサのアーキテクチャです。特定のマイクロプロセッサ用にアセンブリがプリコンパイルされている、1 つ以上のアプリケーションを配置する場合は、この値を指定する必要があります。有効な値は、msilx86ia64amd64 です。既定値は msil (Microsoft Intermediate Language) です。この値は、アセンブリがどのプラットフォームにも依存していないことを示します。この場合、共通言語ランタイム (CLR : Common Language Runtime) では、アプリケーションの最初の実行時に各アセンブリを Just-In-Time コンパイルします。

-pu, -ProviderUrl url

(配置マニフェストのみ) ClickOnce でアプリケーションの更新チェックを行う場合に参照する URL を指定します。

-tr, -TrustLevel level

(アプリケーション マニフェストのみ) クライアント コンピュータ上のアプリケーションに与える信頼のレベルです。有効な値には、"Internet"、"Intranet"、および "FullTrust" が含まれます。アプリケーション マニフェストを新規作成する場合の既定値は "Intranet" です。

-tf, -ToFile filePath

(すべてのファイルの種類) 作成または変更されたファイルの出力パスを指定します。

–New を使用するときに –ToFile を指定しなかった場合、出力ファイルは現在の作業ディレクトリに既定のファイル名で書き込まれます。実際のファイル名は、作成するファイルの種類に応じて異なります。

  • 配置マニフェストの場合 : deploy.application

  • アプリケーション マニフェストの場合 : application.exe.manifest

–Update を使用する場合に –ToFile を指定しなかった場合、Mage.exe では、入力ファイルにファイルが書き込まれます。

-v, -Version versionNumber

(配置マニフェストおよびアプリケーション マニフェストのみ) 配置のバージョンです。引数は "N.N.N.N" という形式の有効なバージョン文字列である必要があります。ここで "N" は、32 ビット符号なし整数です。既定値は、"1.0.0.0" です。

次の表は、–Sign コマンドでサポートされているオプションを示しています。このコマンドは、すべての種類のファイルに適用されます。

オプション 説明

-cf, -CertFile filePath

マニフェストに署名するための証明書の場所を指定します。このオプションは –Password オプションと共に使用できます。

-ch, -CertHash hashSignature

クライアント コンピュータの個人証明書ストアに格納されているデジタル証明書のハッシュです。これは、Windows の証明書コンソールに表示されるデジタル証明書の拇印プロパティに対応しています。

hashSignature には、大文字も小文字も使用できます。また、1 つの文字列で指定することも、8 進数の各拇印文字を空白で区切り、拇印全体を引用符で囲んで指定することもできます。

-p, -Password passwd

デジタル証明書でマニフェストに署名する場合に使用するパスワードです。–CertFile オプションと共に使用する必要があります。

-t, -ToFile filePath

作成または変更されたファイルの出力パスを指定します。

解説

Mage.exe では、どの引数も大文字と小文字が区別されません。コマンドおよびオプションの前には、ダッシュ (-) またはスラッシュ (/) を付けることができます。

–Sign コマンドと共に使用できる引数は、すべて、–New コマンドまたは –Update コマンドでも、常に使用できます。次のコマンドは同等です。

mage –Sign c:\HelloWorldDeployment\HelloWorld.deploy –CertFile cert.pfx
mage –Update c:\HelloWorldDeployment\HelloWorld.deploy –CertFile cert.pfx

署名済みのファイルでは、文書のシグネチャが有効であるかどうかがファイルのハッシュによって確認されるため、署名は最後に行う必要があります。署名済みのファイルに変更を加えた場合には、再度署名する必要があります。署名済みの文書に再度署名した場合、Mage.exe では、古い署名が新しい署名で置換されます。

–AppManifest オプションを使用して配置マニフェストを作成した場合、Mage.exe は、配置マニフェストと同じディレクトリにアプリケーション マニフェストが存在し、サブディレクトリには現在の配置のバージョンから名前が付けてあると仮定して、配置マニフェストを適切に構成します。アプリケーション マニフェストを別の場所に格納する場合は、–AppCodeBase オプションを使用して、他の場所を設定します。

配置マニフェストおよびアプリケーション マニフェストは、アプリケーションを配置する前に、署名される必要があります。マニフェストに署名する方法については、「信頼されたアプリケーションの配置の概要」を参照してください。

アプリケーション マニフェストに –TrustLevel オプションを指定すると、アプリケーションをクライアント コンピュータで実行するために必要なアクセス許可セットが表示されます。既定では、アプリケーションの URL が存在するゾーンに基づいてアプリケーションに信頼レベルが割り当てられます。会社のネットワーク上にアプリケーションを配置する場合、アプリケーションは通常、イントラネット ゾーンに格納されます。一方、インターネット上にアプリケーションを配置する場合には、インターネット ゾーンに格納されます。どちらのセキュリティ ゾーンでも、アプリケーションからローカル リソースへのアクセスは制限されますが、イントラネット ゾーンはインターネット ゾーンに比べ、制限が少し緩くなっています。FullTrust ゾーンのアプリケーションの場合には、コンピュータのローカル リソースに制限なしでアクセスできます。–TrustLevel オプションを使用してアプリケーションのゾーンを指定すると、高いレベルの信頼を与えるかどうかを決定するように求めるメッセージが、CLR の Trust Manager コンポーネントによってユーザーに表示されます。会社のネットワーク上にアプリケーションを配置する場合は、信頼されたアプリケーションの配置を使用すると、ユーザーにメッセージで確認することなく、アプリケーションの信頼レベルを引き上げることができます。

アプリケーション マニフェストでは、カスタム信頼セクションもサポートされています。この機能では、アプリケーションの実行に必要な特定のアクセス許可だけを要求するマニフェストを構成できるため、最低限のアクセス許可を要求するセキュリティ プリンシパルにアプリケーションを従わせることができます。Mage.exe では、カスタム信頼セクションの追加は直接サポートされていません。カスタム信頼セクションを追加するには、テキスト エディタ、XML パーサー、またはグラフィカルなツールである MageGUI.exe を使用してください。MageGUI.exe を使用してカスタム信頼セクションを追加する方法の詳細については、「マニフェスト生成および編集ツールのグラフィカル クライアント (MageUI.exe)」を参照してください。


Mage 用のユーザー インターフェイス (MageUI.Exe) を開く例を次に示します。

mage

既定の配置マニフェストおよびアプリケーション マニフェストを作成する呼び出しの例を次に示します。これらのファイルは、すべて現在の作業ディレクトリに作成され、それぞれ deploy.applicationapplication.exe.manifest という名前が付けられます。

mage –New Deployment
mage –New Application
mage –New TrustLicense

HelloWorld アプリケーション ディレクトリにあるすべてのアセンブリとすべてのリソース ファイルを含めたアプリケーション マニフェストを作成する例を次に示します。

mage –New Application –FromDirectory \bin -Version 1.0.0.0

配置名および対象のマイクロプロセッサを指定すると共に、ClickOnce で更新を確認する際の URL も指定する例を次に示します。

mage –New Application –FromDirectory \bin -Name "Hello, World! Application" –Version 1.0.0.0 –Processor "x86" –ProviderUrl http://internalserver/HelloWorld/

アプリケーション マニフェストから取得した情報で配置マニフェストを更新し、アプリケーション マニフェストの場所のコード ベースを設定する例を次に示します。

mage –Update HelloWorld.deploy –AppManifest 1.0.0.0\application.manifest –AppCodeBase http://internalserver/HelloWorld.deployment

ユーザーがインストールしているバージョンを強制的に更新するように、配置マニフェストを更新する例を次に示します。

mage –Update c:\HelloWorldDeployment\HelloWorld.deploy –MinVersion 1.1.0.0

他のディレクトリからアプリケーション マニフェストを取得するように、配置マニフェストに指定する例を次に示します。

mage –Update HelloWorld.deploy –AppCodeBase http://anotherserver/HelloWorld/1.1.0.0/

現在の作業ディレクトリにあるデジタル証明書を使用して、既存の配置マニフェストに署名する例を次に示します。

mage –Sign deploy.application –CertFile cert.pfx –Password passwd

参照

処理手順

チュートリアル : ClickOnce アプリケーションを手動で配置する

関連項目

マニフェスト生成および編集ツールのグラフィカル クライアント (MageUI.exe)
SDK のコマンド プロンプト

概念

信頼されたアプリケーションの配置の概要