私は単純な永続性レイヤーを必要とするデスクトップアプリケーションを作成しています - 私はSubSonicについて知っており、SQLiteで動作することができました。しかし、私はデータベースのファイルをユーザーのAppDataフォルダに保存し、app.configにそのような値を入れる方法を知らないでください。絶対パスは使用したくありません。SQLiteのサブソニック接続文字列
app.configは環境変数や参照アプリケーションのデータフォルダに何らかの形でアクセスできますか?
私は単純な永続性レイヤーを必要とするデスクトップアプリケーションを作成しています - 私はSubSonicについて知っており、SQLiteで動作することができました。しかし、私はデータベースのファイルをユーザーのAppDataフォルダに保存し、app.configにそのような値を入れる方法を知らないでください。絶対パスは使用したくありません。SQLiteのサブソニック接続文字列
app.configは環境変数や参照アプリケーションのデータフォルダに何らかの形でアクセスできますか?
接続文字列のapp.configにAppDataフォルダを指定する方法はありません。
しかし、インストール中またはアプリケーションの最初の実行時に、設定ファイルに値を書き込んでください。
APPDATAを見つけるの「フレームワークの方法は、」これは、プラットフォームに関係なく正しいAPPDATAパスを見つけるEnvironment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
を使用することです。
、いくつかの方法を使用して、ASP.NETを使用している場合は、いずれかの言語で
Server.MapPathのは、(「〜」)/」そして、あなただけ追加することができフルパス名としてアプリケーションのルートを返しますがありますapp_data "を入力すると完全なパスになります。
また同じフォルダを提供します、多くの(と私は今述べた1その後、はるかに良い)性質があるHttpContext.Current.RequestとHttpContext.Current.Application を検査 - として、アプリケーションのルートであることsフルパス。これらは、すべての作業では、仮想フォルダとしてアプリケーションを持っているし、アプリケーションとの定期的なフォルダは、そのフォルダ
にIISで構成しても、しかし、これは、実行時にのみ可能であるべきで、それができないことを
注意実際にはapp.configに記載されています。 app.configがIEの "../App_Data"または "/ App_data"に常駐する場所からrelaliveなパスを使用してみることもできますが、あなたには正確な要件があるかどうかはわかりません。亜音速バージョン2.x用
幸運
私はApp.configファイルの接続文字列を無視してデータベースを使用する前に、実行時にそれを設定します。プロバイダ名はもちろん同じです。
string dbPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), @"MyApplication\Northwind.db3");
DataService.Providers["Northwind"].DefaultConnectionString =
String.Format(@"Data Source={0};Version=3;New=False;Connection Timeout=3", dbPath);
参照http://stackoverflow.com/questions/2079781/how-can-i-tell-subsonic-2-to-use-a-different-config -ファイル – Rory
どうすればよいのでしょうか? – dahpgjgamgan
設定ファイルを読み書きするには、ConfigurationManagerクラスを使用します。 例:http://social.msdn.microsoft.com/forums/en-US/winforms/thread/f26d0863-06be-45c1-b42d-e0816dc9eb58/ MSDNドキュメント:http://msdn.microsoft.com /en-us/library/system.configuration.configurationmanager.aspx –