Как преобразовать .NET exe в двоичный файл Windows, для запуска которого не требуется .NET Framework?

У меня есть исполняемый файл, скомпилированный в Visual Studio 2010 (исходный проект - это приложение Windows Form с C#).
Я должен встроить этот исполняемый файл в установочный файл installsheild msi, и его можно установить в любой операционной системе Windows. system(поддерживаются XP и более поздние версии). но для запуска моего exe конечные пользователи должны сначала установить Microsoft .net framework 4 на свои системы. Я ищу решение для преобразования моего собственного исполняемого файла .NET в исполняемый файл .NET-FREE, который можно запускать без установки .NET Framework.
Есть ли способ сделать это? (Я имею в виду способ ОЖИДАТЬ mono-project)


person Ehsan Khodarahmi    schedule 03.04.2011    source источник
comment
возможный дубликат Есть ли способ скомпилировать приложение .NET в машинный код?   -  person Darin Dimitrov    schedule 03.04.2011
comment
Даже если бы это было технически возможно (скажем, виртуализация реестра и дисков, и я даже не упоминаю проблемы поддержки...), лицензия не позволяет вам распространять необходимые сборки .NET. Они должны быть установлены официальной установкой Microsoft.   -  person Simon Mourier    schedule 03.04.2011
comment
Является ли проблема установкой платформы .NET или ее обновлением? В большинстве версий XP после SP2 был установлен .NET, а во всех более поздних версиях он является базовым пакетом. Если это просто вопрос обновления, почему бы не использовать однократный клик для определения пакета?   -  person GrayWizardx    schedule 03.04.2011
comment
Лучше попробуйте встроить установщик Microsoft .NET framework в вашу установку. ИМХО, актуальная версия .NET Framework должна быть предварительно установлена ​​на каждом компьютере с Windows.   -  person Doc Brown    schedule 03.04.2011


Ответы (2)


Mono поддерживает предварительную компиляцию, по крайней мере, на некоторых платформах. Вы также можете развернуть моно с вашей программой. Но я не уверен, поддерживает ли Mono WinForms в Windows.

Я не думаю, что реализация Microsoft .net поддерживает такое развертывание, так что вам не повезло.

person CodesInChaos    schedule 03.04.2011

Вы не можете создать приложение без .NET, но вы можете попытаться максимально уменьшить требования к версии .NET, используя ILMerge. Например, я успешно использовал его для снижения требований к сторонним инструментам с .NET 4.5 до 4.0.

Инструмент имеет много параметров, но обычно все, что вам нужно, это следующее:

ILMerge.exe /v4 /useFullPublicKeyForReferences /out:target.exe source.exe sourceLib1.dll sourceLib2.dll

Теперь уверен, что это ваш вопрос, но в некоторых случаях это может помочь.

person Kot Matroskin    schedule 21.02.2017