2010-07-09 2 views
0

Я унаследовал приложение Windows Forms, и я обнаружил, что каждый раз, когда я компилирую файл .exe, каждый раз сгенерирован в папку obj \ Debug.EXE сгенерирован в каталоге obj Debug

Я больше являюсь разработчиком веб-форм, поэтому я немного смущен относительно того, что здесь происходит. Почему это .EXE, а не .DLL? Что представляет собой этот файл? Это поведение по умолчанию для приложений Windows Forms? Или мой предшественник должен каким-то образом настроить его?

Насколько я могу судить, решение не имеет проекта развертывания.

ответ

1

Почему это проблема? Проекты консольных приложений имеют exe-файл в папке obj/Debug. Папки obj НЕ используются для запуска приложения - они используются для создания концевых двоичных файлов в папках bin.

Если вопрос об использовании exe vs dll, то скомпилированный exe-файл используется для запуска приложения. В веб-среде вы использовали dll, потому что ASP.NET - новый способ запускать код из него. Но Windows знает, как запускать exe-файлы, поэтому любой ваш код действительно может быть скомпилирован для исполняемого файла.

+0

Спасибо за ответ. Это не проблема, мне было любопытно, является ли это поведение по умолчанию для приложений Win Forms и хотелось бы лучше понять, что происходит. Ваш ответ помог мне понять это больше. – Andrew

0

Для чего это DLL? Это приложение - оно должно быть запущено, в отличие от веб-сайта, который живет «внутри» веб-сервера (эффективно). Файл exe - это приложение (наряду с любыми библиотеками, которые оно требует, конечно). Вы дважды щелкните по нему, он запустит приложение. Нет проблем.

Сказав это, вы должны в значительной степени игнорировать каталог obj - это всего лишь промежуточный каталог. Каталог bin - это тот, с которого вы должны получать результаты сборки.

1

Каждое приложение, будь то веб-сайт или окна, имеет входную точку для выполнения. Все в компилируемой форме в .Net - это сборка, которая не всегда должна быть DLL-файлом. EXE-файл представляет собой сборку .Net с точкой входа и несколькими заголовками в начале файла, который идентифицирует себя как автономный исполняемый файл для операционной системы Windows. В случае вашего веб-приложения ваши страницы asp.net - это точки входа, которые пользователи будут вводить в браузере и запускать приложение. В случае автономного оконного приложения для настольных приложений это EXECUTABLE файл, который пользователь может нажать на запуск.

Я больше являюсь разработчиком веб-форм, поэтому я немного смущен относительно того, что здесь происходит. Почему это .EXE, а не .DLL?

Сказав это, также важно отметить, что, как и asp.net, это не единственная платформа для разработки веб-приложений [у вас есть php, jsp и т. Д.]. также не единственный способ создания автономных исполняемых файлов. Вы можете сделать EXE в C, C++, VB, Delhpi и т. Д. Единственная разница будет заключаться в том, что они не будут .Net-сборками, но все из них, включая исполняемые файлы .Net, будут иметь начальную точку запуска и заголовок EXE, который идентифицирует их как исполняемые файлы в операционной системе Windows.

2

Их много видов применения win в delhpi. Если вы создаете форму Windows, в папке отладки будут искажены файлы .exe, если вы создаете DLL-файлы Dynamic Link Liberary (DLL). Эти файлы создаются каждый раз при компиляции приложения.