Разверните .NET (C #) exe-приложение на десктопах - PullRequest
6 голосов
/ 23 июля 2010

Я разрабатываю приложение на C # с MSVC 2010 Express, с Forms / WPF / и т. Д.

Приложение состоит из нескольких частных сборок (возможно, DLL) и файла .exe.Он использует функции .NET 4.

Как развернуть это приложение на других компьютерах?Конечно, если у них есть .NET 4, я просто могу отправить ZIP-файл .exe с .dll, и это работает.Но если у них вообще нет .NET (на машине с Win XP)?Или, может быть, они имеют более низкую версию .NET?Должен ли я указать им установить .NET из Интернета или упаковать его с моим приложением или как?

Спасибо

Ответы [ 10 ]

13 голосов
/ 23 июля 2010

Существует одноразовое развертывание от Microsoft.Он автоматизирует большинство задач, включая проверку наличия правильной версии .Net и обновление приложения, если доступна новая версия приложения.

11 голосов
/ 23 июля 2010

Вам следует создать установочный пакет.Если вы используете экспресс-версии Visual Studio, вы можете использовать некоторые бесплатные инструменты для этого, такие как WiX или Inno Setup.WiX, пожалуй, трудный вариант для начала, но он обладает большой гибкостью.Существуют учебные пособия и примеры проектов, которые можно изменить, чтобы адаптировать их к вашим потребностям.http://www.tramontana.co.hu/wix/

Эти инструменты создают инсталляторы, которые могут проверять, установлена ​​ли определенная версия .NET Framework на компьютере пользователя, среди других условий.Вы также можете включить распространяемый пакет .NET в свой пакет или указать пользователю, чтобы загрузить и установить его.

5 голосов
/ 05 августа 2010

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

У нас есть несколько шагов, чтобы добраться:

  1. Убедитесь, что все зависимые файлы ресурсов по возможности хранятся во встроенных ресурсах, а не на диске
  2. Используйте ILmerge, чтобы связать все сборки в один исполняемый файл
  3. Опционально - обфускация сборки
  4. Необязательно - Если некоторые части не могут быть ILMerged или запутаны, что заставляет нас иметь несколько файлов, мы используем PostBuild Xenocode, чтобы связать все файлы в один исполняемый файл. Для этого Xenocode предлагает виртуальную файловую систему. Это также позволяет встраивать фреймворк, поэтому ваше приложение будет работать при чистой установке Windows - не нужно устанавливать никаких зависимостей: -)
  5. Обернуть один исполняемый файл в установщик MSI с помощью WiX
  6. Обернуть один исполняемый файл в один клик после развертывания. Для этого мы также используем небольшой исполняемый файл-заглушку, запускающий основное приложение, что позволяет нам повторно использовать тот же исполняемый файл основного приложения
  7. Создайте zip-файл из одного исполняемого файла для ручной установки.

Мы следующие на нашем сайте загрузок:

  1. установщик MSI - мы предпочитаем, чтобы люди использовали этот
  2. ZIP-файл с исполняемым файлом Xenocoded (один файл)
  3. ZIP-файл с исполняемым файлом Xenocoded (один файл), включая .NET Framework
2 голосов
/ 23 июля 2010
1 голос
/ 23 июля 2010

Используйте здесь xenocode

http://spoon.net/Studio/

Не нужно ничего устанавливать.Он косвенно преобразует ваш exe-файл в нативный код, и вы можете запускать его в любом месте системы Windows.Он также имеет некоторую возможность добавления фреймворка внутрь, и общий размер исполняемого файла будет где-то около 10 МБ + Размер исполняемого файла вашего приложения.

Спасибо

1 голос
/ 23 июля 2010

Вы не сказали, что это за клиенты (вы делаете небольшое приложение для своих друзей или они платят клиентам), но в любом случае, я всегда полностью против отправки почтового файлас инструкцией, описывающей, что с ней делать и в какую папку ее распаковывать.Как сказал Реми, ClickOnce - неплохая идея, но я обнаружил, что настраивать его немного затруднительно (хотя, как только вы его настроите, он работает просто отлично).С другой стороны, проект развертывания проще, и на вашем месте я бы первым делом это изучил.

1 голос
/ 23 июля 2010

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

0 голосов
/ 03 августа 2010

Проверьте Inno: http://www.jrsoftware.org/isinfo.php Это бесплатно и довольно просто.

OTOH Я видел QTTabBar, использующий его в своей кодовой базе, и это был буквально один текстовый файл (setup.iss).Дайте мне посмотреть, смогу ли я найти URL на их странице SourceForge, чтобы вы могли увидеть исходный код и сборку ... Там есть http://qttabbar.svn.sourceforge.net/viewvc/qttabbar/trunk/Install/ Если вы возьмете дерево исходных текстов, вы, вероятно, сможете переместить его для своего приложениядень.

0 голосов
/ 23 июля 2010

когда вы упаковываете ваше приложение, вы должны включить .NET Framework

0 голосов
/ 23 июля 2010

да! Вы должны дать некоторые общие инструкции о предварительных требованиях для запуска вашего программного обеспечения, а также упомянуть версию Framework 3.5 или 4.0 и другие необходимые вам утилиты.

Пожалуйста, обратитесь к этому документу для выбора стратегии развертывания в Visual Studio 2010, может это поможет вам http://msdn.microsoft.com/en-us/library/e2444w33.aspx

...