SQLiteデータベースを含むVisualStudioを使用してC#で記述された単純なWinFormsアプリケーションがあります。データベースのビルドアクションプロパティは「コンテンツ」に設定され、出力ディレクトリへのコピーは「新しい場合はコピー」に設定されます。アプリケーションを公開する準備ができました。インストーラーを作りたいのですが。これについて行くための最良の方法は何ですか?いくつかの問題が予想されます。データベースファイルはどこに保存すればよいですか?プログラムファイルフォルダに保存すると、データベースは読み取り専用になります。どこに保存すればよいですか。また、どのように保存すればよいですか。
私はあなたの質問を次のように受け止めます:「アプリケーションのインストールと使用中に書き込み可能なファイルをどこに保存しますか?」
これには2つの特別な場所があります。
ApplicationData特別なフォルダー。このフォルダーには現在のユーザーがアクセスでき、実際にはC:\ Users \\ AppData \ Roaming(Win7)に配置されます。このパスは%APPDATA%
環境変数に格納され、次のように使用できます。
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
そこにある次のフォルダ構造にファイルを安全に保存できます%APPDATA%\YourCompanyName\YourAppName\
。
CommonApplicationData特別なフォルダー。すべてのユーザーがアクセスでき、実際には__(Win7)に配置されることを除いて、上記とほぼ同じです。このパスは%ALLUSERSPROFILE%
環境変数に格納され、次のように使用できます。
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData));
以前と同様に、ファイルを次のフォルダ構造に安全に保存できます%ALLUSERSPROFILE%\YourCompanyName\YourAppName\
。
あなたの場合に関しては、ここであなたがdbファイルパスを取得する方法は次のとおりです。
var appDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
var dbPath = Path.Combine(appDataPath, "YourCompanyName\YourAppName", "your_db_name.sqlite3");
実際の違いは、このデータベースはすべてのWindowsユーザーに共通であるのか、それとも各ユーザーが独自のデータベースを持っている必要があるのかということです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加