У меня было несколько ответов на похожие вопросы, но они мне особо не помогли.
У меня есть приложение, в которое я встроил некоторые ресурсы. При запуске приложение проверяет, существуют ли ресурсы в папке appdata, и если нет, копирует файлы шаблонов из встроенных ресурсов в папку appdata перед их загрузкой, а затем использует файлы из папки appdata в качестве рабочих копий.
У меня есть вспомогательный класс, который, помимо прочего, возвращает подпапку appdata и resources следующим образом:
class Folders
{
static public String GetUserFolder()
{
return Application.LocalUserAppDataPath;
}
static public String GetResourcesFolder()
{
// If the resources folder does not exist then create it
String userFolder = GetUserFolder();
String resourcesFolder = userFolder + "\\Resources";
if (!Directory.Exists(resourcesFolder))
{
Directory.CreateDirectory(resourcesFolder);
}
return resourcesFolder;
}
...
Итак, мой код вызывает метод GetResourcesFolder, который возвращает путь (создает папку в процессе, если это необходимо), проверяет, существует ли файл и не пытается ли он записать в него что-то вроде:
String filename = Helpers.IO.Folders.GetResourcesFolder() + "\\data.dat";
FileStream outFile = System.IO.File.OpenWrite(filename);
Итак, я установил сцену, и этот код работает на всех машинах, которые были у меня в офисе разработчиков. Тем не менее, несколько коллег за пределами сайта жаловались, что они «зависают» на их машинах - в каждом случае машина XP - но в остальном не очень много полезной информации, получаемой от них, - пытаясь получить от них что-то более информативное. У меня в офисе есть машины с ХР, на которых он работал без проблем.
После того, как я выкопал несколько действительно старых машин, которые были "заархивированы" некоторое время назад, мне также удалось получить сбой на двух машинах xp (sp2). В обоих случаях сбой, по-видимому, связан с разрешениями на запись, и запуск приложения с помощью «Запуск от имени ...» решил проблему, и она работает правильно. Однако после успешного запуска приложения, когда оно перестает работать, даже если я удалю созданные им файлы / папки из папки appdata, оно все равно будет успешно создано при последующих выполнениях, даже если я не буду повышать разрешения.
Проблема, с которой я столкнулся, заключается в том, что теперь я больше не могу повторять сбой на любых доступных мне машинах разработчика, и я не знаю, как вернуться в состояние, в котором я могу.
У кого-нибудь есть идеи о том, что может быть причиной проблемы, или как я могу вернуть машины в «девственное» состояние, чтобы иметь возможность повторить сбой и помочь мне отследить его.