@RobinDotNet Хороший вопрос

ользуюApplicationDeployment.CurrentDeployment.DataDirectory для хранения содержимого, загруженного клиентом во время выполнения, которое, как ожидается, будет присутствовать при каждом запуске приложения, однако теперь я обнаружил, что это изменение кажется случайным, если приложение обновляется.

Каков наилучший надежный способ хранения пользовательских данных для приложения в одноразовых развертываниях?

В настоящее время я использую следующий метод

private const string LocalPath = "data";

public string GetStoragePath() {
    string dir;
    if (ApplicationDeployment.IsNetworkDeployed) {
        ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
        dir = Path.Combine(ad.DataDirectory, LocalPath);
    } else {
        dir = LocalPath;
    }
    return CreateDirectory(dir);
}

Я изначально следил за статьейДоступ к локальным и удаленным данным в приложениях ClickOnce под заголовкомClickOnce Data Directory в котором говорится, что это рекомендуемый путь.

НОТА: CreateDirectory(string) просто создает каталог, если он еще не существует.

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

Ответы на вопрос(3)

Ваш ответ на вопрос