Приложение WPF DotNET будет запущено в режиме отладки, но .EXE не будет запускаться

Я написал приложение WPF в С#, используя VS 2010. Приложение будет отлично работать в режиме отладки с помощью Visual Studio, но когда я иду запускать .EXE из папки bin\release, ничего не происходит. Я не получаю никаких сообщений об ошибках из окон, и в VS нет ошибок или предупреждений. Я попытался построить, перестроить и очистить решение (в любом возможном порядке) без везения. Мое решение содержит 2 проекта, оба из которых используют платформу .NET 4.0, и у меня установлен .NET 4.0 на моем ПК. Я пробовал как XP, так и Win7, и все равно ничего.

Я также заметил, что вывод Debug при запуске приложения в режиме отладки говорит: "Не удается найти или открыть файл PDB" после каждого .Dll, который он загружает.

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

Любые идеи?

Ответ 1

Вот пара идей, которые приходят на ум

  • Если вы находитесь на машине x64, попробуйте изменить приложение с AnyCPU на x86. Это режим, в котором приложения по умолчанию работают в режиме отладки, и, возможно, проблема, возникающая в x64, вызывает проблему в выпусках
  • Возможно, бинарные файлы Release устарели. Удалите двоичные файлы из папки Release, перестройте и запустите вновь созданные прогоны
  • Запустите сборку выпуска под отладчиком в Visual Studio и посмотрите, не доходит ли она до сбоев

Ответ 2

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

Мои журналы приложений в списке событий Event Viewer, перечисленные в списке событий 1018 и 1022. Это, по-видимому, было странно связано с dll ASP.NET 2.0 (странно, поскольку это был только пустой проект WPF). Журналы содержали такие сообщения:

Windows не может открыть 64-разрядную расширяемую библиотеку DLL ASP.NET_64_2.0.50727 в 32-разрядной среде

В конце концов это оказалось разрешено, когда я отключил свой антивирус. Я читал, что эта резолюция работала для кого-то с McAfee; и он также работал в моей среде, в которой есть Avast.

Ответ 3

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

У вас есть только один вариант: запустите приложение с отладчиком на компьютере, что вызывает проблемы и проверяет наличие там исключений. (используйте WinDBG - это легко и просто).

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

Лаборатории отладки должны предоставить вам достаточно информации о том, как использовать windbg для поиска вашей проблемы:

Также используйте это:

Ответ 4

У меня была очень похожая проблема.

Проверьте этот параметр в записи в App Pool:

  • Перейдите в раздел Дополнительные настройки.
  • Измените "Включить 32-разрядные приложения" на "ИСТИНА".

Это сработало для меня!

Ответ 5

(JaredPar) ответ выглядит правильно (x64), но если не попробовать щелкнуть правой кнопкой мыши по EXE и запустить в режиме администратора для победы 7.

Ответ 6

Я собираюсь пойти с догадкой, что:

  • Либо у вас есть некорректное повреждение в вашей установке .NET Framework.
  • Существует некоторый код для отладки/выпуска, использующий #if DEBUG или такой, который существенно отличается от проблем.
  • Вы еще не компилировали недавно релиз (попробуйте изменить его на Release перед компиляцией вашего последнего кода и убедитесь, что вы не получите никаких ошибок).

Это единственное, что я могу вспомнить с головы.

Ответ 7

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