не могу открыть файл изолированного хранилища при переносе приложения - PullRequest
1 голос
/ 13 марта 2012

Я использую технологию IsolatedStorage в своем приложении C # .net.

Мое приложение сохраняет данные о закрытии в файле MyData.dat в изолированном хранилище.

когда я открываю свое приложение, оно перезагружает эти данные и печатает их на экране.

когда я перемещаю свое приложение в другой каталог, например, из D: \ MyApp.exe в D: \ Apps \ MyApp.exe, а затем запускаю приложение из его нового каталога, происходит сбой загрузки файла MyData.dat ( FileNotFoundException), потому что он ищет другой файл MyData.dat в другом месте ..

Кто-нибудь знает, как я могу сохранить свой изолированный файл - файл MyData.dat в месте, где бы я ни находился, где бы я ни открывал мой App.exe, он его найдет?

Ответы [ 4 ]

1 голос
/ 14 марта 2012

Я думаю, что информация о вашей сборке изменилась каким-то образом. Например, перед перемещением вашего exe-файла это была версия 1.0.0.0, а в другой каталог вы положили другую версию 1.0.0.1. В этом случае должны быть две отдельные директории в хранилище изолятов (см. Другие ответы) для этих двух разных версий.

Или возможно, что в первый раз вы запускаете свое приложение в режиме отладки внутри VS, а затем вы перемещаете свой exe-файл и запускаете его напрямую. В этом случае должны быть две разные директории, такие как yourappname и yourappname.vschost .

В любом случае, пожалуйста, проверьте ваши изолированные места хранения, чтобы получить больше информации.

1 голос
/ 13 марта 2012

Проверьте каталог IsolatedStorage , полученный в обоих случаях. Даже если машина одинакова, ожидаемый путь хранения может быть разным для одного и того же приложения в разных местах.

Получение изолированного пути хранения

0 голосов
/ 11 января 2017

Я попробовал это сам и заметил, что AssemblyIdentity в экземпляре IsolatedStorageFile изменяется при перемещении приложения в другую папку.

Чтобы предотвратить это, вы должны подписать сборку, и только после этого вы можете переместить приложение в другую папку и по-прежнему использовать то же место для изолированного файла хранилища.

0 голосов
/ 14 марта 2012

Вы можете использовать IsolatedStorageFile.GetUserStoreForAssembly, чтобы получить магазин, который вы можете использовать, при условии, что идентификационная информация неизменна.Так что это также не будет зависеть от расположения исполняемого файла.См. MSDN Статья

...