こんにちは。システムの運用・開発をしているM.Iです。

「ClickOnce」は、Webブラウザ経由でソフトウェアを配布する方式です。
VisualStudioから発行ウィザード(※1)に従って実行すると、配布モジュールが準備できます。
(※1 VisualStudio2022の場合は、「選択範囲の公開」⇒「公開/ターゲット」⇒「ClickOnce」)
この時、配置マニフェストおよびアプリケーションマニフェストが作成され、配布に必要な情報を管理します。

.Net Framework環境では、「Mage.exe(MageUI.exe)」ツールでも、同様に配置マニフェストおよびアプリケーションマニフェストを作成および編集ができます。
(Mage.exe と MageUI.exe は Windows ソフトウェア開発キット (SDK) に含まれています。)
配布モジュールの更新場所のみ変更する時など、一部の変更にはこのツールのコマンドがとても便利です。

.NETのコマンドプロンプトから以下のコマンドを実行します。

  

更新場所を変更します。

Mage -Update C:\temp\hoge\hoge.application -ProviderUrl http://localhost/hoge_new -Version 1.1.0.0
  -Update (配置マニフェストのパス)
  -ProviderUrl (更新場所)
  -Version (バージョン)


新しく配置したアプリケーションマニフェストは、再度デジタル署名を付与する必要があります。

mage -Sign C:\temp\hoge\Application Files\hoge_1_0_0_0\hoge.exe.manifest -CertFile C:\temp\mycert.pfx -Password pwd
  -Sign (アプリケーションマニフェストのパス)
  -CertFile (デジタル署名ファイルのパス)
  -Password (デジタル署名のパスワード)


「Mage.exe」にはUIツール「MegeUI.exe」があるため、UIから変更することも可能です。
(.NETのコマンドプロンプトから「mage」を実行)
UIを起動し、既存のファイルを開いてみると、VisualStudioで見慣れた項目が表示されています。

 


.NET Core 3.1 および .NET 5 以降では、「Mage.exe」ではなく「dotnetmage.exe」を使用します。
UIは、2023年6月時点では準備されていないようです。 基本的な仕組みは、.Net FrameworkのClickOnceと変わりありません。

dotnetmage.exeを利用するためには、インストールが必要です。

dotnet tool install –global Microsoft.DotNet.Mage –version 7.0.0


コマンド引数についても、Mage.exeとほぼ変更ありません。

dotnet Mage -Update C:\temp\hoge\hoge.application -ProviderUrl http://localhost/hoge_new -Version 1.1.0.0
  -Update (アプリケーションマニフェストのフルパス)
  -ProviderUrl (インストール先)
  -Version (バージョン)


Setup.exeも接続先を変更することが可能です。
管理者権限があるコマンドプロンプトで実行する必要があります。
こちらもデジタル署名が消えてしまうため、付与する必要があります。

setup.exe -url=http://localhost/hoge_new
  -Url (インストール先)


サーバ移行時、ソースを管理していないサーバ管理者でも、このツールを利用することで対応が可能になります。

参考:方法: 配置の更新用に別の場所を指定する