次の方法で共有


ClickOnce とアプリケーションの設定

Windows フォームのアプリケーション設定を使用すると、クライアントでカスタム アプリケーションとユーザー設定を簡単に作成、保存、管理できます。 次のドキュメントでは、ClickOnce アプリケーションでのアプリケーション設定ファイルの動作と、ユーザーが次のバージョンにアップグレードしたときに ClickOnce が設定を移行する方法について説明します。

以下の情報は、既定のアプリケーション設定プロバイダーである LocalFileSettingsProvider クラスにのみ適用されます。 カスタム プロバイダーを指定した場合、そのプロバイダーは、データの格納方法と、バージョン間での設定のアップグレード方法を決定します。 アプリケーション設定プロバイダーの詳細については、「アプリケーション設定の アーキテクチャ」を参照してください。

アプリケーション設定ファイル

アプリケーション設定では、<app>.exe.configuser.configの 2 つのファイルが使用されます。ここで、アプリは Windows フォーム アプリケーションの名前です。 user.config は、アプリケーションがユーザー スコープの設定を初めて格納する際にクライアントで作成されます。 <app>.exe.configは、設定の既定値を定義する場合、デプロイ前に存在します。 Visual Studio では、発行コマンドを使用すると、このファイルが自動的に まれます。 Mage.exe または MageUI.exeを使用して ClickOnce アプリケーションを作成する場合は、アプリケーション マニフェストを設定するときに、このファイルがアプリケーションの他のファイルに含まれていることを確認する必要があります。

ClickOnce for .NET Core 3.1 および .NET 5 以降では、 Mage.exe の代わりに dotnet-mage.exeを使用します。 詳細については、「 .NET の ClickOnce」を参照してください。

ClickOnce を使用して配置されていない Windows フォーム アプリケーションでは、アプリケーションの <app>.exe.config ファイルがアプリケーション ディレクトリに格納され、 user.config ファイルはユーザーの [ドキュメントと設定] フォルダーに格納されます。 ClickOnce アプリケーションでは、 <app>.exe.config は ClickOnce アプリケーション キャッシュ内のアプリケーション ディレクトリに存在し、 user.config はそのアプリケーションの ClickOnce データ ディレクトリに存在します。

アプリケーションの展開方法に関係なく、アプリケーション設定により、 <app>.exe.configへの安全な読み取りアクセスと、user.configへの安全な読み取り/書き込みアクセス が保証されます

ClickOnce アプリケーションでは、アプリケーション設定で使用される構成ファイルのサイズは、ClickOnce キャッシュのサイズによって制限されます。 詳細については、「 ClickOnce キャッシュの概要」を参照してください。

.NET Core と .NET 5 以降

現在、発行する .NET Core アセンブリは、厳密な名前キー ファイルを使用して署名する必要があります。 そうでない場合、 ApplicationSettingsBase.Upgrade メソッドは、新しい ClickOnce の発行後に設定を正しくコピーしません。 .NET Core プロジェクトのプロパティの [ ビルド] > [厳密な名前付け ] オプションで、厳密な名前の使用を指定できます。

バージョン アップグレード

ClickOnce アプリケーションの各バージョンが他のすべてのバージョンから分離されているのと同様に、ClickOnce アプリケーションのアプリケーション設定は、他のバージョンの設定からも分離されます。 ユーザーがアプリケーションの新しいバージョンにアップグレードすると、アプリケーション設定は最新の (番号が最も高い) バージョンの設定と、更新されたバージョンで指定された設定を比較し、設定を新しい設定ファイルのセットにマージします。

次の表では、コピーする設定をアプリケーション設定で決定する方法について説明します。

変更の種類 アップグレード操作
<app>.exe.config に追加された設定 新しい設定は、現在のバージョンの <app>.exe.config にマージされます。
<app>.exe.config から設定が削除されました 古い設定は、現在のバージョンの > から削除されます.exe.config
設定の既定値が変更されました。user.config では、ローカル設定は引き続き元の既定値に設定されます 設定は現在のバージョンの user.config にマージされ、新しい既定値が値として使用されます
設定の既定値が変更されました。user.config で既定値以外に設定する 設定は現在のバージョンの user.config にマージされ、既定値以外の値は保持されます

独自のアプリケーション設定ラッパー クラスを作成し、更新ロジックをカスタマイズする場合は、 Upgrade メソッドをオーバーライドできます。

ClickOnce とローミングの設定

ClickOnce はローミング設定では機能しないため、ネットワーク上のマシン間で設定ファイルをフォローできます。 ローミング設定が必要な場合は、ネットワーク経由で設定を格納するアプリケーション設定プロバイダーを実装するか、リモート コンピューターに設定を格納するための独自のカスタム設定クラスを開発する必要があります。 設定プロバイダーの詳細については、「 アプリケーション設定のアーキテクチャ」を参照してください。