アプリケーション マニフェストと配置マニフェストの再署名
Windows フォーム アプリケーション、Windows Presentation Foundation アプリケーション (xbap)、または Office ソリューションのアプリケーション マニフェストの配置プロパティを変更した後、アプリケーション マニフェストと配置マニフェストの両方に証明書を使用して再署名する必要があります。 このプロセスによって、改ざんされたファイルがエンド ユーザーのコンピューターにインストールされないようにすることができます。
マニフェストに再署名する可能性があるもう 1 つのシナリオは、顧客が独自の証明書を使用してアプリケーション マニフェストと配置マニフェストに署名することを希望する場合です。
アプリケーション マニフェストと配置マニフェストへの再署名
この手順では、既にアプリケーション マニフェスト ファイル (.manifest) に変更を加えていることを前提としています。 詳細については、「方法: 配置プロパティを変更する」を参照してください。
Note
.NET Core 3.1 および .NET 5 以降の ClickOnce では、Mage.exe の代わりに dotnet-mage.exe を使用します。 詳細については、.NET 用 ClickOnce に関するページを参照してください。
Mage.exe を使用してアプリケーション マニフェストと配置マニフェストへ再署名するには
Visual Studio のコマンド プロンプト ウィンドウを開きます。
署名するマニフェスト ファイルが格納されているフォルダーにディレクトリを変更します。
次のコマンドを入力してアプリケーション マニフェスト ファイルに署名します。 ManifestFileName は、マニフェスト ファイルの名前に拡張子を加えたものに置き換えます。 Certificate は、証明書ファイルの相対パスまたは完全修飾パスに置き換え、Password は、証明書のパスワードに置き換えます。
mage -sign ManifestFileName.manifest -CertFile Certificate -Password Password
たとえば、アドイン、Windows フォーム アプリケーション、または Windows Presentation Foundation ブラウザー アプリケーション用のアプリケーション マニフェストに署名するには、次のコマンドを実行できます。 運用環境への配置では、Visual Studio によって作成された一時的な証明書は推奨されません。
mage -sign WindowsFormsApplication1.exe.manifest -CertFile ..\WindowsFormsApplication1_TemporaryKey.pfx mage -sign ExcelAddin1.dll.manifest -CertFile ..\ExcelAddIn1_TemporaryKey.pfx mage -sign WpfBrowserApplication1.exe.manifest -CertFile ..\WpfBrowserApplication1_TemporaryKey.pfx
次のコマンドを入力して、配置マニフェスト ファイルを更新して署名します。前の手順と同様にプレースホルダー名を置き換えます。
mage -update DeploymentManifest -appmanifest ApplicationManifest -CertFile Certificate -Password Password
たとえば、Excel アドイン、Windows フォーム アプリケーション、または Windows Presentation Foundation ブラウザー アプリケーション用の配置マニフェストを更新して署名するには、次のコマンドを実行できます。
mage -update WindowsFormsApplication1.application -appmanifest WindowsFormsApplication1.exe.manifest -CertFile ..\WindowsFormsApplication1_TemporaryKey.pfx mage -update ExcelAddin1.vsto -appmanifest ExcelAddin1.dll.manifest -CertFile ..\ExcelAddIn1_TemporaryKey.pfx mage -update WpfBrowserApplication1.xbap -appmanifest WpfBrowserApplication1.exe.manifest -CertFile ..\WpfBrowserApplication1_TemporaryKey.pfx
必要に応じて、マスター配置マニフェスト (publish\<アプリ名>.application) をバージョン配置ディレクトリ (publish\Application Files\<アプリ名>_<バージョン>) にコピーします。
アプリケーション マニフェストと配置マニフェストを更新して再署名する
この手順では、既にアプリケーション マニフェスト ファイル (.manifest) を変更したが、更新された他のファイルがあることを前提としています。 ファイルが更新された場合は、ファイルを表すハッシュも更新する必要があります。
Mage.exe を使用してアプリケーション マニフェストと配置マニフェストを更新して再署名するには
Visual Studio のコマンド プロンプト ウィンドウを開きます。
署名するマニフェスト ファイルが格納されているフォルダーにディレクトリを変更します。
発行出力フォルダー内のファイルから .deploy ファイル拡張子を削除します。
次のコマンドを入力して、更新されたファイルの新しいハッシュでアプリケーション マニフェストを更新し、アプリケーション マニフェスト ファイルに署名します。 ManifestFileName は、マニフェスト ファイルの名前に拡張子を加えたものに置き換えます。 Certificate は、証明書ファイルの相対パスまたは完全修飾パスに置き換え、Password は、証明書のパスワードに置き換えます。
mage -update ManifestFileName.manifest -CertFile Certificate -Password Password
たとえば、アドイン、Windows フォーム アプリケーション、または Windows Presentation Foundation ブラウザー アプリケーション用のアプリケーション マニフェストに署名するには、次のコマンドを実行できます。 運用環境への配置では、Visual Studio によって作成された一時的な証明書は推奨されません。
mage -update WindowsFormsApplication1.exe.manifest -CertFile ..\WindowsFormsApplication1_TemporaryKey.pfx mage -update ExcelAddin1.dll.manifest -CertFile ..\ExcelAddIn1_TemporaryKey.pfx mage -update WpfBrowserApplication1.exe.manifest -CertFile ..\WpfBrowserApplication1_TemporaryKey.pfx
次のコマンドを入力して、配置マニフェスト ファイルを更新して署名します。前の手順と同様にプレースホルダー名を置き換えます。
mage -update DeploymentManifest -appmanifest ApplicationManifest -CertFile Certificate -Password Password
たとえば、Excel アドイン、Windows フォーム アプリケーション、または Windows Presentation Foundation ブラウザー アプリケーション用の配置マニフェストを更新して署名するには、次のコマンドを実行できます。
mage -update WindowsFormsApplication1.application -appmanifest WindowsFormsApplication1.exe.manifest -CertFile ..\WindowsFormsApplication1_TemporaryKey.pfx mage -update ExcelAddin1.vsto -appmanifest ExcelAddin1.dll.manifest -CertFile ..\ExcelAddIn1_TemporaryKey.pfx mage -update WpfBrowserApplication1.xbap -appmanifest WpfBrowserApplication1.exe.manifest -CertFile ..\WpfBrowserApplication1_TemporaryKey.pfx
アプリケーション マニフェスト ファイルと配置マニフェストファイルを除くファイルに .deploy ファイル拡張子を追加して戻します。
必要に応じて、マスター配置マニフェスト (publish\<アプリ名>.application) をバージョン配置ディレクトリ (publish\Application Files\<アプリ名>_<バージョン>) にコピーします。
関連するコンテンツ
- ClickOnce アプリケーションのセキュリティ保護
- ClickOnce アプリケーションのコード アクセス セキュリティ
- ClickOnce と Authenticode
- 信頼されたアプリケーションの配置の概要
- ClickOnce のセキュリティを有効にして構成する
- ClickOnce アプリケーションのセキュリティ ゾーンを設定する
- ClickOnce アプリケーションのカスタム アクセス許可を設定する
- アクセス許可が制限された ClickOnce アプリケーションをデバッグする
- ClickOnce アプリケーション用の信頼された発行者をクライアント コンピューターに追加する
- ClickOnce 信頼プロンプトの動作を構成する