2012-02-01 3 views
-1

Если я копирую все файлы из папки отладки (или выпуска) и вставляю их где-то, он перестает работать до открытия и процесс исчезает без какого-либо сообщения. Во всяком случае, все в порядке в папке отладки или выпуска. Есть идеи?Приложение .NET работает только в папке отладки

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

+1

Используете ли вы какие-либо зависимости? Любые сторонние библиотеки, которые зависят от собственных (C/COM/C++) компонентов? –

+0

Вы копируете все связанные сборки. Вы получаете сообщения об ошибках. Возможно, ваши методы развертывания неверны, т. Е. Вы делаете то, что мы используем для развертывания устаревших приложений/неуправляемый код/​​исполняемые файлы. Попробуйте запустить его из выпуска папку за пределами отладчика и посмотреть, что произойдет. – MethodMan

+0

Несомненно, но все зависимые сборки находятся в папке. – Manu

ответ

1

Может возникнуть проблема с отсутствующими сборками, разрешениями и т. Д., Вы можете отлаживать исполняемый файл из Visual Studio, если он запущен или нет, следующие ссылки показывают, как присоединить процесс или EXE к визуальному Студийный отладчик.

How to: Debug an Executable Not Part of a Visual Studio Solution
Attaching to Running Processes

1

Вам нужно поймать исключение, чтобы решить проблему. Это может быть вызвано почти чем угодно: от ссылок, не найденных для IO-разрешений и т. Д.

Для простого способа быстро узнать, заверните Main() в try-catch и покажите сообщение с ошибкой.

[STAThread] 
     static void Main() 
     { 
      try 
      { 
       Application.EnableVisualStyles(); 
       Application.SetCompatibleTextRenderingDefault(false); 
       Application.Run(new Form1()); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.ToString()); 
      } 
     } 

Рекомендуемого решение было бы реализовать какое-то прочные лесозаготовки в log4net или такие, прежде чем в производство.

Смежные вопросы