2011-01-20 6 views
4

私はここにかなりの数のサーバーと仮想マシンに展開されるアプリケーションを持っています。このアプリケーションは、特定のファイルの場所とURL(ドメイン名が必要な場合、マップされたドライブなどを使用している場合、会社のネットワークのどの部分に応じて異なる可能性があります)に大きく依存します。これらのデプロイメントの一部は、私によってセットアップされることが保証されていないものもあれば、他のエンドユーザーによってセットアップされるものもあります。Clickonceの展開後にエンドユーザーがアプリケーションのapp.configを変更することは可能ですか?

私の解決策は、app.configファイルにこれらの値を入れることでした。展開後、サーバー上でアプリケーションを設定している人は誰でも、そのサーバーで動作するもののapp.config設定を変更するだけでした。

次に、アプリケーションのデプロイメントとアップデートを簡素化するClickOnceデプロイメントについて知りました。

問題は、ユーザーがapp.configの値を変更できる信頼できる方法を見つけることができず、これらの値を更新後に保持することが好ましいということです。私がウェブ上で見つけたことから、システムファイルを変更すると、ファイルが古いと思ってそのファイルの最新バージョンをダウンロードし、app.configの変更を元に戻します。また、新しいバージョンが以前のバージョンとはまったく異なるフォルダに配備されたように見えるので、アプリケーションをアップグレードすると以前の修正が完全になくなります。

私はウェブを検索して空手を手にしています。誰もがこれを処理する方法に関する提案をしていますか?

答えて

1

hereのように、ユーザースコープのアプリケーション設定を使用して解決しました。それは最良の方法ではありませんが(アプリケーション固有ではないため、ユーザー固有のものです)、私のアプリケーションは1人のユーザーだけが実行するので、これは問題ありません。

ユーザーが設定を変更すると、変更は更新内容全体にわたって持続します。

2

データベーステーブルにできるだけ多くの値を入れ、管理者にユーザーの設定を変更するためのフロントエンドを提供します。

+0

それ以外では、すべてのサーバーで同じように見えるデータベースを見つけて、サーバーごとにアプリ設定を保存するためのテーブル構造を作成するという面倒な作業が必要です。これがapp.configが最初に存在する理由のすべてではありませんか?それはclickonceなしでうまく動作します。 – KallDrexx

+0

私はあなたのアプリケーションがすでにdbを使用していないと思っています。その場合、設定テーブルを導入することはオーバーヘッドに値するものではありません。表はサーバーごとではなく、アプリケーション用に1つのみです。 – Beth

+0

現在のところ、このアプリケーションはDBには接続していません。ウェブサーバーのみです。どんな設定を変更する必要があっても、アプリケーションのセットアップ先のマシンとそのマシンの構成によって異なります。したがって、すべてのインスタンスに対するアプリケーション全体の設定は適用されません。 – KallDrexx

関連する問題