- - PR -
開発環境と本番環境でのアプリケーション設定切り替え方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-11-08 15:14
C# WindowsForm で、SQL Server 2005 Express に接続するアプリケーションを作成しています。
DB接続文字列は、アプリケーション設定の Settings.settings に保存しています。 基本的にデータソースの作成も、ウィザードを使用しました。 開発環境と本番環境とで、接続するDBサーバのサーバ名が異なります。 そのほかにもいろいろと異なる設定がありまして、 最初はいちいち Settings.settings の接続文字列を書き換えてリリースしていましたが、 不便なので、アプリケーション設定ファイルを開発用にひとつ追加し、開発用の 接続文字列を設定しました。 イベント Settings_SettingsLoaded 内で、Settings.settings にフラグ「DEBUG_MODE」を もち、true なら this["connectionString"] を 追加した設定ファイルの文字列に 書き換えています。 これでかなりやりやすくはなったのですが、データソースのウィザードを使用しようと すると、どうやら Settings.settings の接続文字列を見に行ってしまい、ウィザードが 使用できません。 開発環境と本番環境のアプリケーション設定を切り替える、もっとスマートな方法は ないでしょうか? 以下、Settings.setting のイベント発生時のコードです。 void Settings_SettingsLoaded(object sender, System.Configuration.SettingsLoadedEventArgs e) { if (TestApp.Properties.Settings.Default.DEBUG_MODE) { this["connectionString"] = TestApp.Properties.SettingsDebug.Default.connectionString; } } |
|
投稿日時: 2006-11-08 15:36
私は#ifディレクティブを使用しています。
ご参考 テスト用コードをデバッグ時にのみ実行するには? _________________ -------------------------------------------- HIRO's.NET PowerShell,VB.NET,C#のTipsを掲載しています HIRO's.NET Blog PowerShell,VB.NET,C#を中心とした技術ネ |
|
投稿日時: 2006-11-08 16:01
HIRO さま、返信ありがとうございます。
#ifディレクティブ の使用も考えたのですが、DB接続に関しては Designer.cs の private void InitConnection() にて this._connection.ConnectionString = global::TestApp.Properties.Settings.Default.connectionString; と取得しており、Designer.cs を触らずに ConnectionString を開発用に 設定できるような#ifディレクティブ の使い方がわかりませんでした。 Settings.setting 読み込み時に、DEBUG なら appDebug.conifig を、本番なら app.config を読み込むような#ifディレクティブ の使い方ができれば よいのかなと思うのですが、いったいどこに記述したら???と 悩んでおります。 |
|
投稿日時: 2006-11-08 16:29
プロジェクトに設定ファイルを2つ追加し、Settinng1をデバッグ用、Setting2をリリース用として下記のように書いてみてはどうでしょうか?
private void Form1_Load(object sender, EventArgs e) { Settings1 set1 = new Setting1(); Settings2 set2 = new Setting2(); string strConn = string.Empty; #if DEBUG strConn = set1.Connstring; #else strConn = set2.Connstring; #endif } _________________ -------------------------------------------- HIRO's.NET PowerShell,VB.NET,C#のTipsを掲載しています HIRO's.NET Blog PowerShell,VB.NET,C#を中心とした技術ネ |
|
投稿日時: 2006-11-08 20:34
System.Diagnostics.ConditionalAttribute 属性。
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1