VB2005で、アプリケーションの設定ファイルをapp.configで作ってます。
ビルドすると実行ファイルと同じ階層に実行ファイルと同名の設定ファイル
が作成されるのですが、
このファイル名を変更したり保存する場所を指定したりすることは
簡単にできないでしょうか?
仮にできたとして、その構成ファイルの場所はどうやって求めるんでしょう? ハードコーディング?
検証はしていませんが、ConfigurationManager.OpenExeConfiguration とかOpenMappedExeConfiguration を使えば出来そうな気がする。
ただし、My.Settings は使えなくなるし、構成名をプロパティに持つ自動生成クラスも使えなくなると思います。
あまりメリットがなさそうな。
実行ファイルと設定ファイルとを同じ場所に配置したくないので、
別途フォルダを作ってそこに配置させたいと思っています。
以前はiniファイルを使っていたので、app.configでも同様に
したいのです。
> 実行ファイルと設定ファイルとを同じ場所に配置したくない
のは何故でしょうか? なんとなく?
ちなみに、インストールはどうお考えですか?
任意のフォルダに置いて使えるような形態を考えているのか、Program Files 以下にインストールするような形態を考えているのか。
後者の場合、一般ユーザーは Program Files 以下のファイルを書きかえる権限を持ちませんので、Program Files 以下の .config ファイルは読み取り専用になります。
その場合、ConfigurationManager 等を用いた設定の保存は、各ユーザーの AppData フォルダ以下に別のファイルが(勝手に)作られることになります。
まぁ、それも OpenMappedExeConfiguration とかでカスタマイズできるとは思うんですが。たぶん。
ユーザーはMSIセットアッププログラムで任意のフォルダにインストール
できます。
設定ファイルには接続文字列などが書いてあるので、基本的にいじること
はありません。
プログラム・DLL・設定ファイルなど、ファイルの種類ごとに別々のフォルダに分けて配置する方が個人的に好きだからという理由だけです。
インストールフォルダ
├exeフォルダ
├dllフォルダ
└configフォルダ
みたいな作りにすると、exe から dll や config を読み込むのにも余計な手間がかかります。
インストールフォルダ
└exe、dll、config 全部一緒
にしておけば、そのあたりは .NET Framework が全部面倒見てくれます。
個人的には、ぜんぶ一緒にするのをお勧めしますが、敢えて茨の道を歩まれたいのであれば止めはしません。
簡単にはapp.configではできなさそうなので、iniで作ることにします。
どうもです。
別フォルダに置いた XML ファイルを読むことだけを目的とするのであれば、
XmlDocument.Load メソッドとか、DataSet.ReadXml メソッドでも良いのかも。
ツイート | ![]() |