![](/img/trans.png)
[英]If I create a C# desktop application with SQLite, will the database get bundled with the installer?
[英]How To Publish/Create Installer For A C# Application With An SQLite Database?
我有一個使用Visual Studio C#編寫的簡單WinForms應用程序,其中包括SQLite數據庫。.數據庫的Build Action屬性設置為“ Content”,“ Copy to Output Directory”設置為“ Copy if Newer”。 該應用程序已准備好發布。 我想做一個安裝程序。 最好的方法是什么? 我預計會有一些問題。我應該在哪里保存數據庫文件? 如果將其保存到Program Files文件夾中,則數據庫將變為只讀。.我應該在哪里保存它,應該怎么做?
我會問您的問題是: “在安裝和使用應用程序期間將可寫文件存儲在哪里?”
有兩個特殊的地方:
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用戶都通用,還是每個用戶都應該有自己的數據庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.