我在我的c#.NET应用程序中使用DistractStorage技术。

我的应用程序在孤立的存储中保存在名为mydata.dat的文件中的数据。

当我打开我的应用程序时,它将重新加载数据并在屏幕上打印它。

当我将应用程序移动到另一个目录时,例如从d:\ myapp.exe到d:\ apps \ myapp.exe,然后从它的新目录运行应用程序,它失败加载文件mydata.dat(filenotfoundException)因为它在不同的地方寻找不同的mydata.dat文件..

有人知道我如何将孤立的文件保存 - mydata.dat文件在一个地方,无论我打开我的app.exe它会找到它吗?

有帮助吗?

解决方案

检查在两种情况下检索的 solictstorage 的目录。即使机器是相同的,预期存储路径也可以不同于不同位置的相同应用程序。

获取隔离存储路径

其他提示

我认为您的装配信息已以某种方式更改。例如,在移动exe之前,它是1.0.0.0版本,在另一个目录中放置不同版本1.0.0.1。在这种情况下,应该有两个单独的目录中的隔离存储位置(请参阅这两个不同版本的另一个答案)。

否则您可能首次在VS内部的调试模式下运行应用程序,然后移动EXE并直接运行它。在这种情况下,应该有两个不同的目录,如 yourappname yourappname.vschost

无论如何请检查您的孤立的存储位置以获取更多信息。

您可以使用IsolatedStorageFile.GetUserStoreForAssembly来获取可以使用的商店,只要易于同种的身份不变。所以它也将独立于exe文件的位置。查看 MSDN文章

我自己尝试了它,我注意到当您在另一个文件夹中移动应用程序时,我注意到solorderagefile实例上的组装。

要防止此操作,您必须签署组件,只有您可以将应用程序移动到另一个文件夹中,仍然对孤立的储档文件的相同位置。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top