Моя программа отлично работает из любого места на моем диске, кроме каталога Program Files (Windows XP), я вошел в систему как администратор, поэтому у меня есть полные права доступа к диску. Он отлично работает из корня c: каталога Windows практически в любом другом месте, кроме Program Files. Я воссоздал эту проблему на 4 разных машинах: 2 XP, 2 Vista.
Моя программа - это программа на C# .Net 2.0. В чем, черт возьми, может быть проблема?
Я даже скопировал весь свой проект в каталог Program Files, и я не могу отладить его оттуда, он просто не запускается, никаких ошибок.
Спасибо за любую помощь.
Вам следует закрыть этот вопрос, если вы нашли свою проблему.





Просто догадываюсь, но если ваша программа попытается сохранить данные в программном каталоге, Vista предотвратит это и динамически изменит путь на что-то вроде c: \ users [user] \ AppData. Может быть, это намекнет на то, что происходит.
В противном случае нам понадобится дополнительная информация о вашей программе, чтобы помочь вам.
У него такая проблема на 2-х машинах с ХР.
Программа запускается из других папок с пробелом в пути, таких как Documents and Settings, программа создает временный файл в папке user profile \ appdata.
Если я запускаю приложение несколько раз откуда-то, оно будет запускаться, я только что заметил, что получаю сообщение об ошибке с возможностью отладки, но VS не показывает мне местоположение проблемы, я просто получаю ошибку ниже.
Необработанное исключение в 0x79fb96a2 в test.exe: 0xC0000005: место чтения нарушения прав доступа 0x0000000c.
Проблема может быть воспроизведена на XP и Vista.
Большое спасибо
Поместите файл .PDB в тот же каталог. Вы должны получить лучшую информацию.
Если вы не можете отлаживать, вы всегда можете создать журнал отладки. Это немного медленно, но в итоге вы найдете место, где программа перестает работать.
LogDebug('before 1');
Statement1;
LogDebug('before 2');
Statement2;
LogDebug('before 3');
Statement3;
LogDebug('after 3');
Если это машина, управляемая «старшим братом» вашей компании, похоже, только «разрешенные» приложения могут запускаться из «программных файлов».
Я пробовал программу на новой установке XP, к которой не применялись никакие организационные политики.
:-(
Ой! Вы уже пробовали с файлом .PDB в том же каталоге?
Да, и это не имело никакого значения, я также установил место отладки в папку с файлами программы, и она не будет работать, измените ее на другое место, и она работает нормально. Я озадачен.
Возможно, некоторая информация в codeproject.com/KB/debug/postmortemdebug_standalone1.aspx поможет вам точно определить, где находится ошибка.
Что ваша программа читает в своем каталоге?
Почему вы создаете временный файл в user / appdata? Для временных файлов вы должны использовать API, чтобы получить временную папку для текущего профиля и, в идеале, временное имя файла, работает следующим образом:
string tempFilePath = Path.Combine(Path.GetTempPath(), Path.GetTempFileName());
Чтобы помочь вам должным образом, нам нужно знать, что ваша программа должна делать при init.
У вас есть что-нибудь вроде антивирусного программного обеспечения?
Что он?
Вы проверили журналы событий?
Попробуйте вызвать его из командного файла и посмотрите, что произойдет.
ммм, кто-нибудь хочет попробовать его .exe на своей машине ??
Извините за это, но я обнаружил проблему, у меня был какой-то дерьмовый код, который искал передаваемые аргументы, включая «файл», а файл в «программных файлах» заставлял программу работать в режиме командной строки без графического интерфейса. Очень жаль, что потратил время на такую тривиальную задачу, живи и учись!
Спасибо всем.
Вы проверили, что именно эта программа не может работать в программных файлах? Можете ли вы создать небольшое «пустое приложение», которое запускается в программных файлах?