0

我有一个依赖于应用程序随附的 XML 数据文件的 Windows Phone 应用程序。当应用程序第一次在手机上运行时,我将文件加载到隔离存储中。将文件加载到隔离存储后,应用程序将使用数据的隔离存储版本。在我的应用程序的下一个版本(市场更新)中,XML 文件将包含更多元素,我如何在每次应用程序更新(市场上的新版本)时更新一次数据文件?

我以为我可以更改隔离存储中的文件名,但这会留下垃圾。我还可以在加载 XML 文件时检查异常,但是还有其他更优雅的方法吗?我不想在每次运行我的应用程序时检查隔离存储中的旧文件。

理想的情况是放一段代码,当新版本的应用程序加载到手机上时会执行一次,有没有办法做到这一点?

4

3 回答 3

1

据我所知,在应用程序安装/更新后首次运行时,没有“开箱即用”事件会运行一次。

您必须自己标记运行,就像您已经说明的那样(保存当前版本,在每次运行应用程序时比较版本以查看应用程序是否已更新!)

于 2012-04-15T09:12:02.230 回答
0

我现在明白你想要什么了。

  1. 将 XML 文件添加为资源。
  2. 使用GetResourceStream获取 XML 的内容。

请注意,资源的名称类似于 /DllName;component/Folder/ResourceName

于 2012-04-15T01:28:27.227 回答
0

这是我所做的:

在我的DataLayer类的构造函数方法中,我添加了以下代码:

private bool AppIsOld
{
    get
    {
        string storedVersion = GetStoredAppVersion(); //stored previously "seen" version
        string currentVersion = GetCurrentlyRunningAppVersion();
        return !(storedVersion == currentVersion);
    }
}


private string GetCurrentlyRunningAppVersion()
{
    var asm = Assembly.GetExecutingAssembly();
    var parts = asm.FullName.Split(',');
    return parts[1].Split('=')[1].ToString();
}

然后我运行以下检查:

if (AppIsOld)
    RefreshResources(); //do whatever to refresh resources

函数代码GetCurrentlyRunningAppVersion()取自这里

这个解决方案不是我想到的,因为每次调用类构造函数时它都会运行,而我想要在版本更新时运行一次的东西。

于 2012-05-15T06:41:01.457 回答