redwarrior’s diary

C#, ASP.NET, WEB, G*などの雑多な情報

(小ネタ).NETで設定ファイル(***.config)の値に半角スペースを使用する方法

.NETで設定ファイル(Web.configやApp.config)の値に半角スペースを使用したい場合がたまにあります。

代表的なのはDBの接続文字列で、AttachDbFilenameにmdfファイルのパスを指定する場合です。

コンソールアプリケーションで、SQL Server 2012 Express LocalDBを使用して開発しようとした時に、 デフォルトのままプロジェクトを作成すると、「C:\Users\ユーザー名\Documents\Visual Studio 2013\Projects\」の配下にソリューション(その下にプロジェクト)が出来てしまいます。

ユーザー名、ソリューション(プロジェクト)名に半角スペースを含まないように注意することは出来ますが、"Visual Studio 2013"は変更しようがありません。というか、変更したくありません。
また、そのプロジェクトでしか使わないので、mdfファイルはプロジェクト内に置きたいです。

コマンドプロンプトでの実行であれば、半角スペースを含んだパスをダブルクォートで囲んでしまえば良いのですが、接続文字列は以下のようにconnectionString属性に設定するためにすでにダブルクォートを使用しています。

<add name="SampleDB" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=mdfファイルのパス

それでは、どうするかというとAttachDbFilenameの値を&quot;で囲んでしまいます。

<add name="SampleDB"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=&quot;C:\Users\ユーザー名\Documents\Visual Studio 2013\Projects\ソリューション名\プロジェクト名\Database1.mdf&quot;" />

これによって、connectionStringの値がプログラムで使用されるときに、AttachDbFilenameの値がダブルクォートで囲まれるようになります。

&quot;は、XMLの記法なので設定ファイルの他の値でも使用できます。

結論

.NETで設定ファイル(Web.configやApp.config)の値に半角スペースを使用するには、&quot;で囲む