Вот что мы делаем:
Мы отправляем копию БД в приложении.Он включен как Content, Always Copy в проект.
На компьютере пользователя он сохраняется в специальном каталоге Environment.SpecialFolder.Personal
.
Когда приложение запускается, мы проверяем, чтобы увидетьесли база данных существует в системе пользователя и, если нет, скопируйте ее туда.
Строка подключения просто "Data Source=" + sDatabasePath
.
Вот пример кода, который мы используем для этого(Я взломал соединение, так как мы используем класс homebuilt для управления БД, но вы должны понять):
const string DATABASE_FILE_NAME = "MyDB.db3";
bool fSuccess = false;
DbConnection conn = new DbConnection ();
string sApplicationDir = Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.Personal), "MyApplicationSubDir");
if (!Directory.Exists (sApplicationDir)) {
Directory.CreateDirectory (sApplicationDir);
}
// Generate the directory to the database file
string sDatabaseDir = Path.Combine (sApplicationDir, "Database");
m_sDatabaseDir = sDatabaseDir;
if (!Directory.Exists (sDatabaseDir)) {
Directory.CreateDirectory (sDatabaseDir);
}
// Generate the path to the database file
string sDatabasePath = Path.Combine (sDatabaseDir, DATABASE_FILE_NAME);
m_sDatabaseFile = sDatabasePath;
// If the file does not not exist
if (!File.Exists (sDatabasePath)) {
// Copy the base implementation
File.Copy (Path.Combine (Path.Combine (Environment.CurrentDirectory, "Database"), DATABASE_FILE_NAME), sDatabasePath);
}
// Initialize the DB
conn.ConnectionString = "Data Source=" + sDatabasePath;