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

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

Добавлено:

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

Ответы [ 13 ]

0 голосов
/ 16 июня 2012

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

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

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

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

В интересах полноты и что-то, чтобы рассмотреть наряду с ответами о МОНО.

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

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

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

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

...