Запуск приложения на основе .net без .NET Framework

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

Добавлено:

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

Ответ 1

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

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

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

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

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

Ответ 2

Вы можете использовать mono для static-link всех необходимых вам dll-фреймворков.

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


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


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

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

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

Ответ 3

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

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

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

Ответ 4

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

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

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

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

Ответ 5

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

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/

Ответ 6

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

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

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

Ответ 7

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

Ответ 8

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

Ответ 9

Если вы имеете в виду "Могу ли я запустить приложение .NET, не устанавливая фреймворк вообще?" тогда ответ не будет, вы не можете.

Если вы имеете в виду "Могу ли я запустить приложение .NET без установки Microsoft.NET framework и CLR?" тогда ответ будет только в том случае, если вы сможете найти альтернативу, а Моно - единственное, что я знаю.

Ответ 10

В интересах полноты и что-то рассмотреть вместе с ответами re MONO.

Задумывались ли вы, возможно, написать приложение в собственном коде? Таким образом, вы можете просто развернуть свой exe. Если вам нужна среда RAD для повышения производительности, тогда такие инструменты, как Delphi или С++ Builder, дадут вам ощущение FCL (Delphi VCL был спроектирован Андерсом Хейлсбергом до того, как он перешел на MS, поэтому, вероятно, нет совпадений, что С# чувствует себя очень знакомым Delphites)

Ответ 11

Это является одним из лучших объяснений (среди многих), которые я нашел:

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

Кроме того, не все методы в .NET-классах находятся в управляемом коде. Если вы посмотрите на     разобранный код в Reflector, вы увидите, что некоторые из методов отмечены     с флажком MethodImplAttributes.InternalCall. Это означает, что фактическое     реализация метода является внутренней для CLR. Любая система, которая скомпилировала С#     (или любой другой язык .NET) на собственный код придется дублировать все это,     и это было бы грандиозным усилием. И в результате приложение, скорее всего, будет довольно     большой.

Ответ 12

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

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

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

Для получения лучшего обзора обратитесь к документации.

Ответ 13

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