Запуск приложения на основе .net без .NET Framework - PullRequest
36 голосов
/ 05 июня 2009

Есть ли способ запуска приложений на основе .net без установленной платформы .net. Есть ли способ сделать это. Есть ли программное обеспечение, которое может достичь этого. Коммерческое программное обеспечение также возможно.

Добавлено:

Кто-нибудь имел опыт работы с тонким клиентом VMWare ?

Ответы [ 13 ]

27 голосов
/ 05 июня 2009

Есть несколько различных инструментов, пару я попробовал:

Вы можете найти больше, выполнив поиск " .NET Linker ."

Два приведенных выше теста, которые я пробовал, вроде бы работали нормально, но я никогда не проверял свой код, созданный с их помощью. Я пробовал их в основном из любопытства.

Мои приложения .NET в основном используются ИТ-отделами. Установка платформы .NET для них не составляет большого труда.

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

16 голосов
/ 05 июня 2009

Вы можете использовать моно для статического связывания всех необходимых библиотек.

Конечно, это ограничивает вас монофонической реализацией фреймворка, которая улучшается, но в некоторых местах все еще не завершена.


Обновление:
Исходя из ваших различных комментариев, мое лучшее предложение - использовать версию 2.0 фреймворка. Это прекрасно установится на Windows 2000 без проблем, и вы можете настроить таргетинг на Visual Studio 2008, если вам нужно.


Мне также немного любопытно ваше требование Windows 2000. Вы развертываете в бизнес или дома?

Почти у домашних пользователей практически нет Windows 2000. Домашние пользователи в итоге вздрогнули (вздрогнули) под Windows ME, которая была выпущена примерно в то же время, и по этой причине почти полностью перешли на Windows XP. С большей вероятностью вы будете видеть в качестве машины Windows 98 дома, чем Windows 2000, и даже Microsoft не поддерживает Windows 98.

С другой стороны, очень многие компании все еще используют машины с Windows 2000 в большом количестве. Но бизнес-среды обычно не имеют проблем с установкой .Net Framework. При необходимости они даже могут автоматически добавлять его на компьютеры через развертывание групповой политики.

6 голосов
/ 05 июня 2009

Используйте Mono, он разработан Novell и имеет открытый исходный код

Изменить: Вопрос был о запуске без установленного времени выполнения независимо от "поставщика". Тем не менее, вот ссылка на википедию Моно. Наслаждайтесь.

http://en.wikipedia.org/wiki/Mono_(software)

4 голосов
/ 05 июня 2009

Моя команда столкнулась с подобной проблемой. Нам нужно было запустить наше приложение .NET 3.5 WPF под Windows PE, которое не имеет пригодной для использования платформы .NET. Я оценил все варианты и нашел Xenocode PostBuild лучшим.

Его графический интерфейс немного нелогичен, и на дороге были некоторые неровности, но он был надежным с тех пор.

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

Также обратите внимание, что встраивание .NET Framework делает большой исполняемый файл. ~ 20 МБ для 2.0 и ~ 40 МБ для 3.5.

3 голосов
/ 05 июня 2009

Вы не упомянули тип программного обеспечения, которое вы хотели запустить, поэтому я решил добавить свои два цента.

Microsoft выпустила Silverlight, плагин для браузера на основе .NET, и они работают с Novell над выпуском версии Silverlight на основе упомянутого выше компилятора Mono под названием Moonlight. Microsoft изначально поддерживает Windows и Mac OS X 10.5.

Если вам нужна дополнительная информация, вот несколько ссылок: http://en.wikipedia.org/wiki/Microsoft_Silverlight http://www.microsoft.com/silverlight/

2 голосов
/ 16 сентября 2013

Если кто-то не хочет использовать .NET Framework, я думаю, что было бы лучше рассмотреть возможность использования другого языка программирования, который генерирует автономный исполняемый файл. Что-то вроде Delphi или, если приз важен, Lazarus. Но я уверен, что есть и другие альтернативы.

2 голосов
/ 05 июня 2009

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

.net 2.0 Я думаю, что в наши дни он даже считается Windows Update, его всего 26 МБ, и вы устанавливаете его только один раз. Если вам нужно что-то родное win32, вернитесь к неуправляемому C ++.

Также ознакомьтесь: SmallestDotNet (хотя это не Windows 2000, но упоминается, что «в скором времени Microsoft выпустит суперкомпактную загрузку для компьютеров с пакетом обновления 2 (SP2), не имеющих версии .NET Framework».)

1 голос
/ 20 ноября 2016

Это называется статическим связыванием .net framework. Mono это позволяет, и есть и другие производители. Один случай, если вам нужно запустить в Windows pe.

1 голос
/ 02 января 2014

Старый вопрос, но он может помочь другим читателям

Вы можете использовать двоичные файлы IKVM для запуска приложения Mono / .Net / Java без какой-либо предустановленной среды. Просто помните:

Вы должны быть в состоянии выполнить это успешно. (В Windows .NET не забудьте скопировать файлы IKVM в текущий каталог.)

Пожалуйста, обратитесь к документации , чтобы лучше рассмотреть.

1 голос
/ 05 июня 2009

Единственная альтернатива .NET Framework, которую я знаю, это MONO (для LINUX).

...