VB.NET: Может ли .EXE, созданный VS2005, быть развернутым как автономный EXE? - PullRequest
0 голосов
/ 15 июня 2010

VB.NET: можно ли развернуть .EXE, созданный VS2005, как автономный EXE?

Когда я изменяю режим в VS2005 на «Release» и создаю решение, bin\ReleaseЗатем каталог содержит файл решения .EXE, а также файл .pdb, vshost.exe и .xml.Что это за дополнительные файлы и нужны ли они?

Я скопировал файл .exe на другой компьютер, и он был выполнен правильно, но при первом запуске была значительная задержка - после этого он был похож на любую другую программу.В чем причина этого и можно ли ей помочь?Это потому, что другие 3 файла в папке Release отсутствуют вместе с ним?

Ответы [ 4 ]

2 голосов
/ 15 июня 2010

Шаблон проекта, который вы использовали для запуска проекта, не имеет оптимальных настроек.Вы получите беспорядок в результате.Это легко поправимо.Начните с Project + Свойства, вкладка Компиляция.Убедитесь, что выбрана версия выпуска, в левом верхнем поле со списком указано «Конфигурация».

  • .pdb-файл содержит символы отладки.Он вам не нужен для сборки выпуска, хотя вы получаете немного более информативные сообщения об исключениях.Трассировка стека будет содержать номера строк.Вы не можете доверять им для сборки выпуска, хотя.Нажмите Advanced Compile Options, Generate debug info = None.

  • .xml-файл содержит информацию IntelliSense, он будет сгенерирован при использовании XML-документации в вашем исходном коде.Предназначено для использования в сборках, на которые есть ссылки в другом проекте, совершенно бессмысленно для проекта EXE.Отключите параметр «Создать файл XML-документации» на вкладке «Компиляция».

  • Файл .vshost.exe является вспомогательным процессом для отладки приложения.Он содержит пользовательскую версию CLR, настроенную по-разному, чтобы помочь с проблемами безопасности при отладке.Это также заставляет вывод Console.WriteLine () появляться в окне вывода Visual Studio.Нет смысла создавать его для сборки Release.Перейдите на вкладку «Отладка» и снимите флажок «Включить процесс размещения Visual Studio».

После внесения этих изменений и перестройки в папке bin \ Release должен быть только файл .exe.папка.

Медленный запуск - это то, что называется «холодным стартом» сборок .NET Framework.Это вызвано медленным или фрагментированным жестким диском.Поскольку библиотеки DLL никогда не загружались, дисковод должен искать в GAC, чтобы найти файлы.Вероятно, вы можете улучшить его, дефрагментировав диск.Холодные запуски никогда не бывают такими же быстрыми, как теплые запуски.

Классический прием, используемый Microsoft Office и Adobe Acrobat, заключается в том, чтобы прогреть кэш файловой системы путем загрузки их DLL во время входа в систему.Они называются «оптимизатором» в папке «Автозагрузка» или «Запустить раздел реестра».Очень раздражает, кстати, они тормозят другие программы.Вы можете сделать то же самое, написав свою собственную маленькую программу .NET, которая ничего не делает, но создает несколько классов.Поместите ярлык в папку «Автозагрузка».

2 голосов
/ 15 июня 2010

Вы должны иметь возможность просто отправить EXE.Файлы PDB и VSHOST используются для отладки, вы должны быть в состоянии сконфигурировать свою сборку Release, чтобы не генерировать эти файлы.Вы можете установить это в диалоговом окне «Дополнительные параметры компилятора» на вкладке «Компиляция» в свойствах вашего проекта. alt text http://philippursglove.com/stackoverflow/compilerdebugoptions.png (Подсказка Amissisco, указывающая на то, что это тот же диалог в VS2005 / 2008.)

Я мог бы представить «значительную задержку», с которой вы столкнулись при запуске программы дляВ первый раз это было связано с загрузкой .NET Framework в память (и, возможно, затем с возвратом на диск) - к сожалению, с этим не так уж и много.Вы можете попробовать использовать аппаратное обеспечение - память и твердотельный диск, вероятно, дадут заметное увеличение скорости, но, возможно, не будут экономически выгодным вариантом, если ваше приложение будет выпущено на значительном количестве ПК.Однако это должно происходить только при первом запуске приложения после перезагрузки компьютера, поэтому последующие запуски приложения выполняются быстрее.

0 голосов
/ 15 июня 2010

Да, вы можете развернуть его как автономный EXE-файл вместе с любыми сторонними DLL, которые не принадлежат .NET Framework, а также с другими ресурсами, такими как application.config.изображения и / или другие медиаресурсы.

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

vshost.exe используется только Visual Studio, хотя не слишком уверен относительно его точного назначения.

Наличие этих трех файлов (.pdb, vshost.exe и .xml) вместе с .exe не должно влиять на скорость загрузки вашего приложения.Поскольку приложения .NET должны быть скомпилированы при первом запуске, задержка, с которой вы столкнулись, должна быть частично обусловлена ​​этим.

0 голосов
/ 15 июня 2010

Для развертывания требуется только файл .Exe. Но лучше создать настройку. Если вы используете файл App.Config / настройки приложения, вам также необходимо скопировать файл exename.config.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...