Почему моя программа не запускается из каталога Program Files, а запускается из любого другого места?

Моя программа отлично работает из любого места на моем диске, кроме каталога Program Files (Windows XP), я вошел в систему как администратор, поэтому у меня есть полные права доступа к диску. Он отлично работает из корня c: каталога Windows практически в любом другом месте, кроме Program Files. Я воссоздал эту проблему на 4 разных машинах: 2 XP, 2 Vista.

Моя программа - это программа на C# .Net 2.0. В чем, черт возьми, может быть проблема?

Я даже скопировал весь свой проект в каталог Program Files, и я не могу отладить его оттуда, он просто не запускается, никаких ошибок.

Спасибо за любую помощь.

Вы проверили, что именно эта программа не может работать в программных файлах? Можете ли вы создать небольшое «пустое приложение», которое запускается в программных файлах?

Nifle 11.12.2008 15:19

Вам следует закрыть этот вопрос, если вы нашли свою проблему.

Patrick Desjardins 11.12.2008 20:07
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
1 731
8

Ответы 8

Просто догадываюсь, но если ваша программа попытается сохранить данные в программном каталоге, Vista предотвратит это и динамически изменит путь на что-то вроде c: \ users [user] \ AppData. Может быть, это намекнет на то, что происходит.

В противном случае нам понадобится дополнительная информация о вашей программе, чтобы помочь вам.

У него такая проблема на 2-х машинах с ХР.

Patrick Desjardins 11.12.2008 20:06

Программа запускается из других папок с пробелом в пути, таких как Documents and Settings, программа создает временный файл в папке user profile \ appdata.

Если я запускаю приложение несколько раз откуда-то, оно будет запускаться, я только что заметил, что получаю сообщение об ошибке с возможностью отладки, но VS не показывает мне местоположение проблемы, я просто получаю ошибку ниже.

Необработанное исключение в 0x79fb96a2 в test.exe: 0xC0000005: место чтения нарушения прав доступа 0x0000000c.

Проблема может быть воспроизведена на XP и Vista.

Большое спасибо

Поместите файл .PDB в тот же каталог. Вы должны получить лучшую информацию.

Brad Bruce 11.12.2008 14:42

Если вы не можете отлаживать, вы всегда можете создать журнал отладки. Это немного медленно, но в итоге вы найдете место, где программа перестает работать.

LogDebug('before 1');
Statement1;
LogDebug('before 2');
Statement2;
LogDebug('before 3');
Statement3;
LogDebug('after 3');

Если это машина, управляемая «старшим братом» вашей компании, похоже, только «разрешенные» приложения могут запускаться из «программных файлов».

Я пробовал программу на новой установке XP, к которой не применялись никакие организационные политики.

:-(

Ой! Вы уже пробовали с файлом .PDB в том же каталоге?

Brad Bruce 11.12.2008 15:03

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

Jason Stevens 11.12.2008 15:26

Возможно, некоторая информация в codeproject.com/KB/debug/postmortemdebug_standalone1.aspx поможет вам точно определить, где находится ошибка.

Brad Bruce 11.12.2008 15:44

Что ваша программа читает в своем каталоге?

Почему вы создаете временный файл в user / appdata? Для временных файлов вы должны использовать API, чтобы получить временную папку для текущего профиля и, в идеале, временное имя файла, работает следующим образом:

string tempFilePath = Path.Combine(Path.GetTempPath(), Path.GetTempFileName());

Чтобы помочь вам должным образом, нам нужно знать, что ваша программа должна делать при init.

У вас есть что-нибудь вроде антивирусного программного обеспечения?

Что он?

  • Это не работает (возможно, связано с ОС)
  • ИЛИ это падает (возможно, разрешения)
  • ИЛИ работает и не производит ожидаемого результата? (возможно разрешения)

Вы проверили журналы событий?

Попробуйте вызвать его из командного файла и посмотрите, что произойдет.

ммм, кто-нибудь хочет попробовать его .exe на своей машине ??

Извините за это, но я обнаружил проблему, у меня был какой-то дерьмовый код, который искал передаваемые аргументы, включая «файл», а файл в «программных файлах» заставлял программу работать в режиме командной строки без графического интерфейса. Очень жаль, что потратил время на такую ​​тривиальную задачу, живи и учись!

Спасибо всем.

Другие вопросы по теме