从不同的计算机

时间:2018-01-10 12:49:32

标签: android sqlite xamarin xamarin.forms

我有两台计算机,每台都运行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;
    }
}

0 个答案:

没有答案