Подтвердить что ты не робот

Превращение исполняемого файла .NET в собственный исполняемый файл

Есть ли какой-либо подход для преобразования приложения, разработанного в .NET, в собственный исполняемый файл (включены источники)?

Установка всей структуры (вплоть до .NET Framework 3.5 SP1) занимает много времени - не всегда компьютеры обновляются из Интернета. Можно ли вызвать NGen для создания независимых исполняемых файлов?

Спасибо

4b9b3361

Ответ 1

Он пока недоступен, но команда проекта Mono работает над компилятором Ahead of Time, который будет делать то, что вы ищете. Предполагается, что Mono будет работать на iPhone (например, Unity), но он должен работать на всех платформах.

Изменить:. Он поддерживает Mono x86, но я не уверен, что они включили функцию, которая уже упакована в зависимые классы (хотя из интервью, которое я слышал, планировалось)

Изменить 2: В настоящее время поддерживаются зависимости, спасибо Dykam!

Ответ 2

Нет, для кода NGen'а все еще нужен фреймворк - он только pre-JIT-код в ваших собственных сборках. Он также требует рамки для самой CLR.

Я верю Mono имеет статический компилятор, который они планируют использовать для iPhone. Я не знаю, будет ли это работать и на Windows.

Раньше существовал продукт Thinstall, который некоторые люди использовали для этого. Теперь он называется ThinApp - в основном это виртуализация приложений. Он коммерческий, но вы вполне можете получить пробную версию.

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

Вы просмотрели .NET 3.5 (SP1) Профиль клиента? Это может помочь немного снизить требования к установке.

Ответ 4

Вы можете использовать NGen, чтобы сделать приложение естественным исполняемым, но оно все равно будет зависеть от .Net framework.

Ответ 5

NGen компилирует exes в native exes, поэтому им не нужно компилировать JIT при их запуске. Однако они все еще зависят от структуры.

Есть несколько коммерческих компаний, которые предоставляют продукты для компиляции сборок .net в автономные exes. Xenocode и vmware Thinapp. Не дешево, хотя.

Ответ 6

Некоторые Obfuscators делают это, вам придется сделать это заранее (прежде чем отправлять его своим пользователям). Например, remotesoft Salamander.

Ответ 7

Вам нужно будет только установить версию .NET, на которую вы нацеливаете, например..NET1.1 или.NET2.0

Изменить. Если вам нужно настроить таргетинг на версию 3.5, вам нужно будет установить как 2.0, так и 3.5

ILMerge (Free) может объединить несколько сборок в один, но я не думаю, что он работает с ядрами.

Короче говоря, если вы хотите запустить .NET-программы, вам понадобится .NET Framework.

Ответ 8

Существует коммерческий продукт, который утверждает, что здесь:

http://www.xenocode.com/Obfuscator/

"Безопасное развертывание приложений .NET без установки .NET Framework"

Не знаю, каковы будут недостатки этого, если

Ответ 10

Единственный продукт, который мы создали для решения проблемы в 2007 году, - Xenocode Postbuild. С этого времени мы успешно используем этот продукт, мы также используем его довольно хорошие функции виртуализации.

Единственная проблема заключается в том, что приобретенная версия не поддерживает Windows 7 (где вам не нужно устанавливать .NET Framework для запуска вашей программы, скомпилированной с версией 4.0). Поэтому я написал в Xenocode. Они ответили

Чтобы получить поддержку для Win 7, вы должны перейти на новейшую версию Postbuild (теперь называемую .NET Obfuscator). Win 7 не поддерживается платформой Postbuild 2007.