ClickOnce и IsolatedStorage

import urllib.request as ur
s = ur.urlopen("http://www.google.com")
sl = s.read()
print(sl)

В Python v3 «urllib.request» является модулем сам по себе, поэтому «urllib» здесь нельзя использовать.

10
задан Jon B 20 October 2008 в 18:57
поделиться

3 ответа

Необходимо использовать приложение, ограниченное по объему, а не домен ограниченное по объему, изолированное устройство хранения данных. Это может быть сделано при помощи одного из перегруженных конструкторов IsolatedStorageFileStream.

Пример:

using System.IO;
using System.IO.IsolatedStorage;
...

IsolatedStorageFile appScope = IsolatedStorageFile.GetUserStoreForApplication();    
using(IsolatedStorageFileStream fs = new IsolatedStorageFileStream("data.dat", FileMode.OpenOrCreate, appScope))
{
...

Однако теперь Вы столкнетесь с выпуском этого кода, только работающего, когда приложение было запущено через ClickOnce, потому что это - ограниченное по объему изолированное устройство хранения данных приложения единственного времени, доступно. Если Вы не запуститесь через ClickOnce (такой как через Visual Studio), то GetUserStoreForApplication () выдаст исключение.

Путь вокруг этой проблемы состоит в том, чтобы удостовериться AppDomain. CurrentDomain. ActivationContext не является пустым прежде, чем попытаться использовать ограниченное по объему изолированное устройство хранения данных приложения.

18
ответ дан 3 December 2019 в 16:31
поделиться

Я работал над приложением ClickOnce только что и использовал Среду. GetFolderPath (ApplicationData) - например, бродящая папка данных приложения, для хранения всех настроек. Хорошо работавшие и пережившие многочисленные обновления. Просто создайте подкаталог с названием Вашего приложения или CompanyName/AppName или безотносительно и сохраните все там.

4
ответ дан 3 December 2019 в 16:31
поделиться

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

1
ответ дан 3 December 2019 в 16:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: