2009-06-02 4 views
37

У меня довольно сложное консольное приложение, которое опирается на несколько DLL. Я хотел бы «отправить» это в лучшей форме. Мой предпочтительный путь был бы exe-файлом со всеми встроенными в него зависимостями (не так много, около 800K). Другое дело было бы просто застегнуть содержимое папки «Отладка» и сделать это доступным, но я не уверен, что все будет доступно как это (все зависимости будут разрешены только путем zipping папки отладки?)Способы развертывания консольных приложений в C#

Какие существуют надежные методы развертывания консольных приложений, написанных на C#, с использованием VisualStudio 2008?

+0

Можно ли предположить, что на машине назначения установлена ​​.NET? Правильная версия? ... Являются ли библиотеки, от которых вы, скорее всего, будете в GAC на этих машинах? – jerryjvl

+0

@jerryjvl: У меня довольно обширная обработка ошибок для среды. Единственное, что я точно знаю, это то, что у всех пользователей есть .NET 3.5, который является базовым для всех других тестов среды. –

+0

Является ли clickonce недоступным для консольных приложений? –

ответ

39

Если вы только что скопировали файлы Foo.exe, dlls и Foo.exe.config, вероятно, все будет в порядке. Посмотрите, что еще находится в папке отладки, хотя вы (возможно) не хотите отправлять файлы .pdb или Foo.vshost.exe. Есть ли еще что-нибудь? Если у вас есть элементы, помеченные как Контент, которые скопированы в выходную папку, вам тоже понадобятся.

Вы могли использовать ilmerge поставить все зависимости в один исполняемый файл, но я несколько подозрительны такого подхода - я бы придерживаться ехе + зависимостей библиотек DLL.

+0

Если вы собираетесь это сделать, вам, вероятно, следует создать конфигурацию выпуска, чтобы вы не включили PDB. – brien

+2

Как насчет ... компиляции в режиме выпуска? –

+0

http://msdn.microsoft.com/en-us/library/wx0123s5.aspx Это просто способ компиляции без символов отладки и файла pdb. – brien

12

Вы должны посмотреть в setup projects в Visual Studio. Они позволяют вам устанавливать зависимости и включать нужные DLL. Конечным результатом является setup.exe и установщик MSI.

Вот walkthrough, который должен помочь.

+5

Весь проект установки для консольного приложения? Разве это не слишком много? –

+2

Не совсем, вы можете быстро создать проект установки, который просто копирует dll и exe, которые вам нужны в нужном месте на клиентской машине. – brien

+1

Пакеты установщика Windows упрощают автоматизацию установки, исправления и удаления.Другие решения, такие как EXE, заставляют меня сидеть на каждой машине и щелкать вещи. Если бы это зависело от меня, моя компания никогда бы не приобрела лицензию на программное обеспечение, опубликованную как нечто иное, кроме пакета установщика Windows. –

0

Создать проект установки в VS08 и добавить основной вывод консоли приложения проекта к нему, это решает зависимости и упаковывает их в .msi

2

ИЛИ вы можете использовать самораспаковывающийся ZIP-файл. Упакуйте все нормальные файлы вверх - .exe, .dll, .config и все остальное - в zip-файл. Извлеките в каталог temp и установите программу run-on-extract как фактическую консоль exe.

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