не могу открыть мой изолированный файл хранения, когда я перемещаю свое приложение EXE
-
13-12-2019 - |
Вопрос
Я использую технологию изолированных таблиц в моем приложении C # .NET.
Мое приложение сохраняет данные о закрытии в файле, называемых mydata.dat в изолированном хранении.
Когда я открываю свое приложение, это перезагружает эти данные и распечатать его на экране.
Когда я перемещаю свое приложение в другой каталог, например из D: \ myapp.exe to d: \ apps \ myapp.exe, а затем запустить приложение из нового каталога, он не загрузка файла mydata.dat (FilenotfoundException) Потому что он ищет другой файл mydata.dat в другом месте ..
кто-то знает, как я могу сохранить свой изолированный файл - mydata.dat файл в месте, которое не имеет значения, откуда я открою свой app.exe, это найдет это?
Решение
Проверьте каталог композиции изолированный панель в обоих случаях.Даже если машина такая же, ожидается, что путь хранения может быть отличным для того же приложения в разных местах.
Другие советы
Я думаю, что информация вашей сборки изменилась каким-то образом.Например, прежде чем переместить EXE, это была версия 1.0.0.0, а в другом каталоге вы поместите разную версию 1.0.0.1.В этом случае должно быть два отдельных каталога в изоляции местоположения хранения (см. Другими ответами) для этих двух разных версий.
Или это возможно, что впервые запустите свое приложение в режиме отладки внутри VS, а затем вы перемещали свой EXE и запустите его напрямую.В этом случае должно быть два разных каталога, такие как yourappname и yourappname.vschost .
В любом случае, пожалуйста, проверьте ваши изолированные места хранения, чтобы получить больше информации.
Вы можете использовать IsolatedStorageFile.GetUserStoreForAssembly
, чтобы получить магазин, который вы можете использовать, до тех пор, пока индивидуальная идентичность не изменяется.Таким образом, он также будет независимым от расположения файла EXE.Смотрите MSDN Статья >
Я попробовал это сам, и я заметил, что сборка в экземпляре изолированныйStorageFile изменяется при перемещении приложения в другой папке.
Чтобы предотвратить это, вы должны подписать сборку и только тогда вы можете переместить приложение в другую папку и все еще использовать одно и то же место для изолированного файла хранения.