ClickOnce とアプリケーション設定
Windows フォームのアプリケーション設定を使用すると、クライアント上でカスタム アプリケーションとユーザー設定を簡単に作成、格納、および保持できます。 ここでは、アプリケーション設定ファイルが ClickOnce アプリケーションでどのように機能し、ユーザーが次のバージョンにアップグレードしたときに ClickOnce がどのように設定を移行するかについて説明します。
以下の情報は、既定のアプリケーション設定プロバイダーである LocalFileSettingsProvider クラスにのみ適用されます。 カスタム プロバイダーを提供している場合は、そのプロバイダーにより、データを格納する方法とバージョン間で設定をアップグレードする方法が決定されます。 アプリケーション設定プロバイダーの詳細については、「アプリケーション設定アーキテクチャ」を参照してください。
アプリケーション設定ファイル
アプリケーション設定ではアプリケーション.exe.config と user.config という 2 つのファイルが使用されます。このアプリケーションは Windows フォーム アプリケーションの名前です。 アプリケーションがユーザー スコープの設定を初めて保存すると、クライアントに user.config が作成されます。 対照的に、アプリケーション.exe.config は、設定に既定値を設定した場合、配置前から存在します。 このファイルは、Visual Studio の [発行] を使用すると、自動的に取り込まれます。 Mage.exe または MageUI.exe を使用して ClickOnce アプリケーションを作成した場合、アプリケーション マニフェストを作成したときにアプリケーションの他のファイルと共にこのファイルが含まれていることを確認する必要があります。
ClickOnce を使用して配置されていない Windows フォーム アプリケーションの場合、アプリケーションの app.exe.config ファイルはアプリケーション ディレクトリに格納され、user.config ファイルはユーザーの Documents and Settings フォルダーに格納されます。 ClickOnce アプリケーションの場合、app.exe.config は、ClickOnce アプリケーション キャッシュ内のアプリケーション ディレクトリに置かれ、user.config ファイルは、そのアプリケーションの ClickOnce データ ディレクトリに置かれます。
アプリケーションの配置方法には関係なく、アプリケーション設定により、app.exe.config への安全な読み取りアクセスと、user.config への安全な読み取り/書き込みアクセスが確保されます。
ClickOnce アプリケーションでは、アプリケーション設定によって使用される構成ファイルのサイズは、ClickOnce キャッシュのサイズによって制限されます。 詳細については、「ClickOnce キャッシュの概要」を参照してください。
バージョンのアップグレード
ClickOnce アプリケーションの各バージョンが他のすべてのバージョンから分離されるのと同様に、ClickOnce アプリケーションのアプリケーション設定も他のバージョンの設定から分離されます。 ユーザーがアプリケーションの新しいバージョンにアップグレードすると、アプリケーション設定は、番号が最も大きいバージョンの設定と更新バージョンに添付されている設定と比較し、新しい設定ファイル セットに設定をマージします。
アプリケーション設定がコピーする設定をどのように決めるかを次の表に示します。
変更の種類 |
アップグレード操作 |
---|---|
app.exe.config に追加された設定 |
新しい設定が現行バージョンの app.exe.config にマージされます |
app.exe.config から削除された設定 |
以前の設定が、現行バージョンの app.exe.config から削除されます |
設定の既定値の変更 - user.config ではローカル設定が元の既定値に設定されている場合 |
設定が現行バージョンの user.config にマージされ、新しい値が既定として設定されます |
設定の既定値の変更 - user.config では設定が既定値以外に設定されている場合 |
設定が現行バージョンの user.config にマージされ、既定以外の値が保持されます |
独自のアプリケーション設定ラッパー クラスを作成し、更新ロジックをカスタマイズする場合は、Upgrade メソッドをオーバーライドできます。
ClickOnce とローミング設定
ClickOnce は、ネットワーク上のすべてのコンピューターに設定ファイルを適用できるようにするローミング設定と連携しません。 ローミング設定が必要な場合は、ネットワーク上で設定を格納するアプリケーション設定プロバイダーを実装するか、またはリモート コンピューターに設定を格納するための独自のカスタム設定クラスを開発する必要があります。 設定プロバイダーの詳細については、「アプリケーション設定アーキテクチャ」を参照してください。