我有两台计算机,每台都运行Community Edition Visual Studio 2015.
这两台机器都是从同一个GitHub主机构建一个Xamarin Forms应用程序。
每台机器都可以成功将Android应用程序安装到我的Android手机上。
安装后,该应用程序可以正常运行。
两台计算机都设置为“在部署之间保留设备上的应用程序数据缓存”
我遇到的问题是应用程序使用的SQLite数据库。如果我从任一台计算机安装,该应用程序可以正常工作,并且可以保存数据。如果我进行代码更改并从同一台机器重新部署,则SQLite数据将保持不变。 但是,如果我切换到另一台机器进行下一次部署,则所有数据都会消失。从那时起,可以添加新数据,只要我继续使用其他计算机,新部署就不会导致数据丢失。如果我切换到另一台机器,下一次部署将删除数据。
我的问题是:无论使用哪台计算机进行部署,如何保留SQLite数据库?
public class SQLiteService : ISQLiteService
{
string GetPath(string databaseName)
{
if (string.IsNullOrWhiteSpace(databaseName))
{
throw new ArgumentException("Invalid database name", nameof(databaseName));
}
var sqliteFilename = $"{databaseName}.db3";
var documentsPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
var path = Path.Combine(documentsPath, sqliteFilename);
return path;
}
public SQLiteConnection GetConnection(string databaseName)
{
return new SQLiteConnection(GetPath(databaseName));
}
public long GetSize(string databaseName)
{
var fileInfo = new FileInfo(GetPath(databaseName));
return fileInfo != null ? fileInfo.Length : 0;
}
}