Приложение 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
У меня возникла аналогичная проблема, у меня отсутствовала пользовательская папка в режиме выпуска, на который я ссылался в конструкторе. Проблема с добавлением папки в выпуск исправлена.