Почему моя программа не запускается из каталога Program Files, а будет откуда-либо еще? - PullRequest
1 голос
/ 11 декабря 2008

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

Моя программа - программа на C # .Net 2.0. С чем может быть проблема?

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

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

Ответы [ 8 ]

2 голосов
/ 11 декабря 2008

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

LogDebug('before 1');
Statement1;
LogDebug('before 2');
Statement2;
LogDebug('before 3');
Statement3;
LogDebug('after 3');
2 голосов
/ 11 декабря 2008

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

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

1 голос
/ 11 декабря 2008

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

: - (

0 голосов
/ 11 декабря 2008

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

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

0 голосов
/ 11 декабря 2008

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

Что это?

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

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

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

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

0 голосов
/ 11 декабря 2008

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

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

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

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

0 голосов
/ 11 декабря 2008

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

0 голосов
/ 11 декабря 2008

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...