問題:
開発者は、 app.config ファイル内のアプリケーション ディレクトリを基準とした SQL Express MDF ファイルの場所。彼らは、絶対パスを手動で定義することを避けたいと考えています。これは、アプリケーションが別の場所にデプロイされる場合に面倒になります。
解決策:
1. |DataDirectory| を使用します:
|DataDirectory| Web アプリケーション専用ではありません。 Web アプリケーションとデスクトップ アプリケーションの両方で使用できます。これは、アプリケーションがデータ ファイルを見つけることを予期するディレクトリを表します。
2. |データディレクトリ| を設定します。プログラム的に:
If |DataDirectory|はアプリケーションによって自動的に設定されません。AppDomain.CurrentDomain.SetData("DataDirectory", path)
を使用してプログラムで設定できます。構成例:
アプリ内.config ファイル:
<add name="MyConnectionString" connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Database=MyDatabaseForTesting;Trusted_Connection=Yes;" />
単体テストの初期化中method:
[TestInitialize] public void TestInitialize() { AppDomain.CurrentDomain.SetData("DataDirectory", System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Databases")); }
このアプローチを使用すると、単体テスト環境であっても、接続文字列はアプリケーション ディレクトリを基準とした MDF ファイルへの相対パスを自動的に使用するようになります。
以上がapp.config 接続文字列で SQL Express MDF ファイルの相対パスを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。