Как упаковать установку (фреймворк + приложение) в один исполняемый файл? - PullRequest
3 голосов
/ 14 марта 2012

Я хотел бы создать файл 'setup.exe', содержащий одно приложение, разработанное мной на C #, и настройку .Net framework 4.0.

Идея такова: когда я выполняю 'setup.exe ', этот файл проверит, установлен ли на компьютере .net framework 4.0, а если нет, то установите

Использование InstallShield 2009.

Кто-нибудь знает, как это сделать?

Дайте мне знать, если ничего не понимаете.

Спасибо.

Ответы [ 5 ]

2 голосов
/ 14 марта 2012

Что касается настройки, вы можете использовать встроенный механизм, который поставляется с Visual Studio, они позволяют, например, автоматически заставить setup.exe проверять, установлена ​​ли необходимая версия фреймворка, и устанавливать ее, если ее нет, - для хорошего начала см. MSDN .

Что касается того, что ваше приложение / EXE состоит из 1 файла, включая все управляемые зависимости, у вас есть несколько вариантов:

ИЛИ

  • используйте какой-нибудь инструмент, например SmartAssembly (коммерческий)он может встраиваться и объединяться между прочим (не нужно менять исходный код)

ИЛИ

  • кодировать себя менее чем за 10 строк (бесплатное, но минимальное изменение исходного кода)пометить все необходимые зависимости как «встроенный ресурс» - так они будут включены в EXE-файл ... вам нужно установить обработчик AssemblyResolve, который во время выполнения считывает ресурсы и возвращает необходимые DLL в.NET runtime ...
2 голосов
/ 14 марта 2012

Существует множество фреймворков для создания настроек.Мой любимый - WIX, вы можете скачать его здесь: http://wix.sourceforge.net/
Существует также платформа для создания интерфейсов WIX с использованием C #, которая называется sharpsetup, вы можете скачать ее здесь: http://sharpsetup.eu/ но яЯ не уверен, что он будет соответствовать вашим потребностям, поскольку на целевой машине может не хватить .NET для запуска (хотя можно написать настройку в .NET 2.0, я не уверен).

Learning WIXможет занять некоторое время, но как только вы пройдете это, не должно быть слишком сложно делать то, что вы хотите.

1 голос
/ 14 марта 2012

Можно ли упаковать вашу полную (разделенную) установку в самораспаковывающийся?Вы можете использовать WinRar или аналогичный для создания сжатого EXE-файла с "автозапуск".

0 голосов
/ 16 марта 2012

Я решил этот вопрос, создав пользовательское действие, это будет тип «Открыть исполняемый файл», и я вызвал это пользовательское действие в событии кнопки мастера.

0 голосов
/ 14 марта 2012

Насколько я знаю, это невозможно при использовании стандартного InstallShield 2009.У вас должен быть хотя бы InstallShield 2010 (с пакетом расширения Installshield 2010 для Visual Studio 2010).

Я не знаю, есть ли способ «взломать» его в ...

...