2010-12-29 6 views
0

ライブWebサーバーで実行されるc#exeを作成しましたが、ステージングサーバーでテストできるようにしたいと考えています。ステージングサーバーはローカルホストと異なるデータベース設定(app.config内)を持っているため、app.configの外部に接続文字列を格納して、簡単にアクセスできるようにする方法はありますか?データベース設定をapp.configの外に保存する

また、データベース接続文字列を格納し、app.configを介してアクセスすることは可能ですか?これは奇妙に聞こえるかもしれませんが、.configファイルの値を使用するCMSのDLLを使用しています。

+0

環境ごとに異なるapp.configファイルを作成してみませんか?これは基本的に、環境に必要な設定を提供するための設定ファイルのポイントです。 – David

答えて

2

あなたは別のファイルに任意の.NET configセクションの "外部化"、およびapp.configからそれを参照することができます。その後、

<connectionStrings configSource="connectionstrings.dev.config" /> 

と、例えばのための独立したコンフィグを作成します。

だからあなたの場合には、あなたがapp.configでこのような何かを持っているでしょうDEV、TEST、PROD環境で異なる名前を使用します。その内容は次のようになります。

<?xml version="1.0"?> 
<connectionStrings> 
    -- your connection string here, as normal 
</connectionStrings> 

あなたはそれらの個別のファイルのいずれかの任意の数をすることができ、そして唯一のスイッチング適切な外部connectionstrings.ABC.configファイルを参照するためにあなたのメインapp.config内の1行を変更することを意味します。

+0

だから、app.configには別のファイルを指し示す構成設定があります。私はそれを実行している各マシン上のapp.configを変更することは可能ですか? –

4

各場所で異なるapp.configを使用することはどうですか?

+0

.exeの外部にapp.configを保存することはできますか?私がビルド(TFS)をしたとき、web.configと同じ方法でapp.configが存在しないようです。 –

+2

これは私が通常行うことです。間違いを避けるために、ソースファイル内にある設定ファイルを、異なる名前を使用して、展開中の場所以外で更新し、デプロイメントスクリプトが更新プロセスの一部として正しいものを自動的にインストールするようにします。 – tdammers

0

必要な場所に保存できます。テキストファイルの環境変数で、コマンドライン引数として渡します。

接続文字列を読み取ってデータアクセスに渡すコードを記述するだけです。

データベースへのアクセス方法を教えてください。接続文字列を渡す方法を教えてください。

環境ごとに異なる設定ファイルを使用する方がよいかもしれません。

0

どのように使用しているかによって異なります。これは単なる文字列なので、基本的に好きな場所に保存できますが、app.configに接続文字列が必要なライブラリを使用している場合は、別の方法で文字列を入力する必要があります。

app.configファイルは簡単に入手できます。これは単なるXML形式のテキストファイルなので、メモ帳などのテキストエディタを使用して編集できます。いったんデプロイされると、それはapp.configという名前ではなく、アプリケーションの名前から拡張子が.configのファイル名になります。

1

代わりにDevConnectionStringProdConnectionStringのように接頭辞付きapp.configにデータベース設定を作成する方法について説明します。次に、あなたがどの環境にいるかを示す要素を1つ作成します。

開発中、その環境設定は「Dev」です。 コードを展開するとき、app.configの環境要素を "Prod"に変更します。

コードでデータベース設定を取得する場合は、最初に環境値を調べて、それに応じてデータベース設定を選択します。

このテーマの1つのバリエーションは、各マシンのWindowsに環境変数を作成し、コード内でそれを調べることです。

0

あなたは接続文字列のための独自の設定をロールバックし、現在の環境に適切に呼び出すことができます。 dev.config、qa.config、prod.configなどの名前をApp.configに保存します。

さらに、Machine.configにレコードを追加することもできます。環境と呼ばれ、環境の設定を決定するためにApp.configファイルを読んで、それを考慮して、すなわち:

のMachine.config:

<environment name="Dev" /> 

アプリケーション。設定:

<environments> 
    <environment name="Dev" config="dev.config" /> 
    <environment name="QA" config="qa.config" /> 
    ... 
</environments> 
関連する問題