Visual Studio を使用して ClickOnce アプリケーションを配置できない場合、または信頼されたアプリケーション配置などの高度な配置機能を使用する必要がある場合は、 Mage.exe
コマンドライン ツールを使用して ClickOnce マニフェストを作成する必要があります。 このチュートリアルでは、マニフェスト生成および編集ツールのコマンド ライン バージョン (Mage.exe) またはグラフィカル バージョン (MageUI.exe) を使用して ClickOnce 配置を作成する方法について説明します。
注
ClickOnce for .NET Core 3.1 および .NET 5 以降では、 Mage.exe の代わりに dotnet-mage.exeを使用します。 詳細については、「 .NET の ClickOnce」を参照してください。
[前提条件]
このチュートリアルには、デプロイを構築する前に選択する必要があるいくつかの前提条件とオプションがあります。
Mage.exe
と MageUI.exeをインストールします。Mage.exe
およびMageUI.exe
は、Windows ソフトウェア開発キット (SDK) の一部です。 Windows SDK がインストールされているか、Visual Studio に含まれている Windows SDK のバージョンが必要です。デプロイするアプリケーションを指定します。
このチュートリアルでは、展開する準備ができている Windows アプリケーションがあることを前提としています。 このアプリケーションは AppToDeploy と呼ばれます。
デプロイの分散方法を決定します。
配布オプションには、Web、ファイル共有、CD などがあります。 詳細については、「 ClickOnce のセキュリティと配置」を参照してください。
アプリケーションに高いレベルの信頼が必要かどうかを判断します。
アプリケーションで完全信頼 (ユーザーのシステムへのフル アクセスなど) が必要な場合は、
-TrustLevel
のMage.exe
オプションを使用してこれを設定できます。 アプリケーションのカスタム アクセス許可セットを定義する場合は、別のマニフェストからインターネットまたはイントラネットのアクセス許可セクションをコピーし、ニーズに合わせて変更し、テキスト エディターまたは MageUI.exeを使用してアプリケーション マニフェストに追加できます。 詳細については、「 信頼されたアプリケーションの展開の概要」を参照してください。Authenticode 証明書を取得します。
Authenticode 証明書を使用してデプロイに署名する必要があります。 Visual Studio、
MageUI.exe
、MakeCert.exe
、Pvk2Pfx.exe
ツールを使用してテスト証明書を生成することも、証明機関 (CA) から証明書を取得することもできます。 信頼されたアプリケーションの展開を使用する場合は、すべてのクライアント コンピューターに証明書の 1 回限りのインストールも実行する必要があります。 詳細については、「 信頼されたアプリケーションの展開の概要」を参照してください。注
証明機関から取得できる CNG 証明書を使用してデプロイに署名することもできます。
アプリケーションに UAC 情報を含むマニフェストがないことを確認します。
アプリケーションに、
<dependentAssembly>
要素などのユーザー アカウント制御 (UAC) 情報を含むマニフェストが含まれているかどうかを確認する必要があります。 アプリケーション マニフェストを調べるには、Windows Sysinternals Sigcheck ユーティリティを使用できます。アプリケーションに UAC の詳細を含むマニフェストが含まれている場合は、UAC 情報を含めずに再ビルドする必要があります。 Visual Studio の C# プロジェクトの場合は、プロジェクトのプロパティを開き、[アプリケーション] タブを選択します。[ マニフェスト ] ドロップダウン リストで、[ マニフェストなしでアプリケーションを作成する] を選択します。 Visual Studio の Visual Basic プロジェクトの場合は、プロジェクトのプロパティを開き、[アプリケーション] タブを選択し、[ UAC 設定の表示] をクリックします。 開かれたマニフェスト ファイルで、1 つの
<asmv1:assembly>
要素内のすべての要素を削除します。アプリケーションにクライアント コンピューターの前提条件が必要かどうかを判断します。
Visual Studio から配置された ClickOnce アプリケーションには、配置に前提条件となるインストール ブートストラップ (setup.exe) を含めることができます。 このチュートリアルでは、ClickOnce 配置に必要な 2 つのマニフェストを作成します。 GenerateBootstrapper タスクを使用して、前提条件のブートストラップを作成できます。
Mage.exe コマンドライン ツールを使用してアプリケーションをデプロイするには
ClickOnce 配置ファイルを格納するディレクトリを作成します。
先ほど作成したデプロイ ディレクトリで、バージョン サブディレクトリを作成します。 アプリケーションを初めてデプロイする場合は、version サブディレクトリ に 1.0.0.0 という名前を付けます。
注
デプロイのバージョンは、アプリケーションのバージョンとは異なる場合があります。
実行可能ファイル、アセンブリ、リソース、データ ファイルなど、すべてのアプリケーション ファイルをバージョン サブディレクトリにコピーします。 必要に応じて、追加のファイルを含む追加のサブディレクトリを作成できます。
Windows SDK または Visual Studio のコマンド プロンプトを開き、version サブディレクトリに変更します。
Mage.exeを呼び出してアプリケーション マニフェストを作成します。 次のステートメントでは、Intel x86 プロセッサで実行するようにコンパイルされたコードのアプリケーション マニフェストを作成します。
mage -New Application -Processor x86 -ToFile AppToDeploy.exe.manifest -name "My App" -Version 1.0.0.0 -FromDirectory .
注
現在のディレクトリを示す
-FromDirectory
オプションの後にドット (.) を必ず含めます。 ドットを含まない場合は、アプリケーション ファイルへのパスを指定する必要があります。Authenticode 証明書を使用してアプリケーション マニフェストに署名します。
mycert.pfx
を証明書ファイルのパスに置き換えます。 passwd を証明書ファイルのパスワードに置き換えます。mage -Sign AppToDeploy.exe.manifest -CertFile mycert.pfx -Password passwd
Visual Studio と Windows SDK で配布される .NET Framework 4.6.2 SDK 以降では、
mage.exe
は、マニフェストに CNG と Authenticode 証明書を使用して署名します。 Authenticode 証明書と同じコマンド ライン パラメーターを使用します。デプロイ ディレクトリのルートに移動します。
Mage.exe
を呼び出して配置マニフェストを生成します。 既定では、Mage.exe
は ClickOnce 配置をインストール済みアプリケーションとしてマークし、オンラインとオフラインの両方で実行できるようにします。 ユーザーがオンラインの場合にのみアプリケーションを使用できるようにするには、-Install
オプションを使用して値をfalse
します。 既定値を使用し、ユーザーが Web サイトまたはファイル共有からアプリケーションをインストールする場合は、-ProviderUrl
オプションの値が Web サーバーまたは共有上のアプリケーション マニフェストの場所を指していることを確認します。mage -New Deployment -Processor x86 -Install true -Publisher "My Co." -ProviderUrl "\\myServer\myShare\AppToDeploy.application" -AppManifest 1.0.0.0\AppToDeploy.exe.manifest -ToFile AppToDeploy.application
Authenticode または CNG 証明書を使用して配置マニフェストに署名します。
mage -Sign AppToDeploy.application -CertFile mycert.pfx -Password passwd
展開ディレクトリ内のすべてのファイルを展開先またはメディアにコピーします。 これは、Web サイトまたは FTP サイト上のフォルダー、ファイル共有、または CD-ROM のいずれかです。
アプリケーションのインストールに必要な URL、UNC、または物理メディアをユーザーに提供します。 URL または UNC を指定する場合は、配置マニフェストへの完全なパスをユーザーに付与する必要があります。 たとえば、AppToDeploy が AppToDeploy ディレクトリ内の
http://webserver01/
にデプロイされている場合、完全な URL パスはhttp://webserver01/AppToDeploy/AppToDeploy.application
。
MageUI.exe グラフィカル ツールを使用してアプリケーションをデプロイするには
ClickOnce 配置ファイルを格納するディレクトリを作成します。
先ほど作成したデプロイ ディレクトリで、バージョン サブディレクトリを作成します。 アプリケーションを初めてデプロイする場合は、version サブディレクトリ に 1.0.0.0 という名前を付けます。
注
デプロイのバージョンは、アプリケーションのバージョンとは異なる可能性があります。
実行可能ファイル、アセンブリ、リソース、データ ファイルなど、すべてのアプリケーション ファイルをバージョン サブディレクトリにコピーします。 必要に応じて、追加のファイルを含む追加のサブディレクトリを作成できます。
MageUI.exe
グラフィカル ツールを起動します。MageUI.exe
メニューから [ファイル]、[新規作成]、[アプリケーション マニフェスト] の順に選択して、新しいアプリケーション マニフェストを作成します。
既定の [名前 ] タブで、このデプロイの名前とバージョン番号を入力します。 また、x86 など、アプリケーションがビルドされる プロセッサ も指定します。
[ファイル] タブを選択し、[アプリケーション ディレクトリ] テキスト ボックスの横にある省略記号 (...) ボタンを選択します。 [ フォルダーの参照 ] ダイアログ ボックスが表示されます。
アプリケーション ファイルを含むバージョンサブディレクトリを選択し、[ OK] を選択します。
インターネット インフォメーション サービス (IIS) から展開する場合は、[ 入力時に.deploy 拡張子を含まないファイルに追加する ] チェック ボックスをオンにします。
[設定] ボタンに移動して、すべてのアプリケーション ファイルをファイル一覧に追加します。 アプリケーションに複数の実行可能ファイルが含まれている場合は、[ファイルの種類] ドロップダウン リストから エントリ ポイント を選択して、このデプロイのメイン実行可能 ファイル をスタートアップ アプリケーションとしてマークします。 (アプリケーションに実行可能ファイルが 1 つだけ含まれている場合は、
MageUI.exe
によってマークされます)。[ 必要なアクセス許可 ] タブを選択し、アプリケーションをアサートするために必要な信頼レベルを選択します。 既定値は FullTrust で、ほとんどのアプリケーションに適しています。
メニューから [ファイル]、[ 名前を付けて保存] の順に選択します。 [署名オプション] ダイアログ ボックスが表示され、アプリケーション マニフェストに署名するように求められます。
ファイル システムにファイルとして保存されている証明書がある場合は、[ 証明書ファイルで署名 ] オプションを使用し、省略記号 (...) ボタンを使用してファイル システムから証明書を選択します。 次に、証明書のパスワードを入力します。
-又は-
コンピューターからアクセスできる証明書ストアに証明書が保持されている場合は、[ 保存された証明書で署名 する] オプションを選択し、指定された一覧から証明書を選択します。
[ OK] を 選択してアプリケーション マニフェストに署名します。 [ 名前を付けて保存 ] ダイアログ ボックスが表示されます。
[ 名前を付けて保存 ] ダイアログ ボックスで、バージョン ディレクトリを指定し、[保存] を選択 します。
メニューから [ファイル]、[新規作成]、[配置マニフェスト] の順に選択して、配置マニフェストを作成します。
[ 名前 ] タブで、このデプロイの名前とバージョン番号を指定します (この例では 1.0.0.0 )。 また、x86 など、アプリケーションがビルドされる プロセッサ も指定します。
[ 説明 ] タブを選択し、 Publisher と Product の値を指定します。 (製品 は、アプリケーションがオフラインで使用するためにクライアント コンピューターにインストールされるときに、Windows の [スタート] メニューでアプリケーションに指定された名前です)。
[ 配置オプション] タブを選択し、[ 開始場所 ] テキスト ボックスで、Web サーバーまたは共有上のアプリケーション マニフェストの場所を指定します。 たとえば、 \\myServer\myShare\AppToDeploy.application です。
前の手順で
.deploy
拡張子を追加した場合は、ここで [.deploy ファイル名拡張子を使用 する] も選択します。[ 更新オプション] タブを選択し、このアプリケーションを更新する頻度を指定します。 アプリケーションで UpdateCheckInfo を使用して更新プログラム自体を確認する場合は、[ このアプリケーションは更新プログラムをチェックする必要があります ] チェック ボックスをオフにします。
[ アプリケーション参照 ] タブを選択し、[ マニフェストの選択 ] ボタンに移動します。 開いているダイアログ ボックスが表示されます。
前に作成したアプリケーション マニフェストを選択し、[ 開く] を選択します。
メニューから [ファイル]、[ 名前を付けて保存] の順に選択します。 [ 署名オプション] ダイアログ ボックスが表示され、配置マニフェストに署名するように求められます。
ファイル システムにファイルとして保存されている証明書がある場合は、[ 証明書ファイルで署名 ] オプションを使用し、省略記号 (...) ボタンを使用してファイル システムから証明書を選択します。 次に、証明書のパスワードを入力します。
-又は-
コンピューターからアクセスできる証明書ストアに証明書が保持されている場合は、[ 保存された証明書で署名 する] オプションを選択し、指定された一覧から証明書を選択します。
[ OK] に移動して、配置マニフェストに署名します。 [ 名前を付けて保存 ] ダイアログ ボックスが表示されます。
[ 名前を付けて保存 ] ダイアログ ボックスで、1 つのディレクトリを展開のルートに移動し、[保存] を選択 します。
展開ディレクトリ内のすべてのファイルを展開先またはメディアにコピーします。 これは、Web サイトまたは FTP サイト上のフォルダー、ファイル共有、または CD-ROM のいずれかです。
アプリケーションのインストールに必要な URL、UNC、または物理メディアをユーザーに提供します。 URL または UNC を指定する場合は、ユーザーに配置マニフェストの完全なパスを指定する必要があります。 たとえば、AppToDeploy が AppToDeploy ディレクトリ内の
http://webserver01/
にデプロイされている場合、完全な URL パスはhttp://webserver01/AppToDeploy/AppToDeploy.application
。
次のステップ
新しいバージョンのアプリケーションをデプロイする必要がある場合は、新しいバージョン (1.0.0.1 など) にちなんだ新しいディレクトリを作成し、新しいアプリケーション ファイルを新しいディレクトリにコピーします。 次に、前の手順に従って、新しいアプリケーション マニフェストを作成して署名し、配置マニフェストを更新して署名する必要があります。 ClickOnce ではより高いバージョンのみが更新されるため、Mage.exe
-New
呼び出しと -Update
呼び出しの両方で必ず同じより高いバージョンを指定してください。左から順に整数が最も重要ですので、十分注意してください。
MageUI.exe使用した場合は、配置マニフェストを開き、[アプリケーション参照] タブを選択し、[マニフェストの選択] ボタンに移動し、更新されたアプリケーション マニフェストを選択することで、配置マニフェストを更新できます。