Страницы

Поиск по вопросам

четверг, 25 октября 2018 г.

За что отвечают файлы в папке с exe-файлом проекта в Visual Studio

Я написал небольшое приложение на C# в Visual Studio 2012. В папке Debug(и Release) помимо Exe-файла для запуска приложения, и сопутствующих файлов и папок, которые я сам создал(папка Log, Settings) для работы приложения, имеются другие файлы(.config, vshost.exe.config и т.д.).
Вопрос: для чего нужны эти файлы? Если их удалить, будет ли приложение запускать по нажатию на exe-файл, и будет ли оно корректно работать?


Ответ

Файлы *.vshost.* нужны для Visual Studio. Они грузятся отладчиком C# (и наверное VB) и постоянно находятся в памяти, и когда вы запускаете процесс на отладку, он грузится в контексте vshost-процесса. Таким образом ускоряется старт отладки, также в контексте этого процесса производятся вычисления в Immediate Window. Эти файлы должны быть в том же каталоге, что и приложение, т. к. иначе будут проблемы с загрузкой зависимых модулей, да и запрос каталога программы даст неверный результат. (Ещё немного про vshost тут.) Файлы *.pdb содержат просто отладочную информацию, такую как имена локальных переменных и номера строк. Они нужны, чтобы отладчик мог сопоставить скомпилированный код исходному тексту. Файлы *.manifest представляют собой манифест сборки. Он может быть включён в .exe или лежать рядом с файлом. Для .exe- файла манифест включается в него при компиляции, чтобы не создавать лишних файлов. Но для .vshost-файла он лежит рядом, чтобы не нужно было перекомпилировать .vshost, то есть, для оптимизации. Файлы *.config представляют собой содержимое App.config вашего приложения. Там хранятся установки уровня приложения. При инсталляции приложения этот файл должен быть скопирован в каталог инсталляции (в Program Files). Пользовательские установки хранятся в %APPDATA% текущего пользователя и создаются автоматически.

Эти файлы не нужно удалять, но если вы удалите, они всё равно будут пересозданы компилятором. Для деплоймента вам нужен только .exe (и/или .dll), и .config (тот, который не от vshost). Ещё можно сохранить для себя .pdb для будущей отладки, но в поставку клиентам включать его не нужно. (Если вы собираете версию для отладки, тогда пригодится.)

Комментариев нет:

Отправить комментарий