Запуск основанного на.NET приложения без Платформы.NET

Одним из безопасных способов является сопоставление имен и функций. Это безопаснее, чем использовать eval.

function_mappings = {
        'add': add,
}

def select_function():
    while True:
        try:
            return function_mappings[raw_input('Please input the function you want to use')]
        except KeyError:
            print 'Invalid function, try again.'
36
задан John Saunders 2 January 2014 в 02:22
поделиться

9 ответов

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

Вы можете найти больше, выполнив поиск по запросу « .NET Linker ».

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

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

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

27
ответ дан 27 November 2019 в 05:54
поделиться

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

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


Обновление:
Основываясь на ваших различных комментариях, я лучше всего предлагаю использовать версию 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. Они даже могут добавить его на машины автоматически через развертывание групповой политики, если потребуется.

16
ответ дан 27 November 2019 в 05:54
поделиться

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

Редактировать: Вопрос касался работы без установленной среды выполнения, независимо от «поставщика». Тем не менее, вот ссылка на статью Mono в википедии. Наслаждайтесь.

http://en.wikipedia.org/wiki/Mono_ (программное обеспечение)

6
ответ дан 27 November 2019 в 05:54
поделиться

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

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/

3
ответ дан 27 November 2019 в 05:54
поделиться

Единственная известная мне альтернатива .NET framework - это MONO (для LINUX).

1
ответ дан 27 November 2019 в 05:54
поделиться

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

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

0
ответ дан 27 November 2019 в 05:54
поделиться

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

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

0
ответ дан 27 November 2019 в 05:54
поделиться

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

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

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

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

4
ответ дан 27 November 2019 в 05:54
поделиться

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

.net 2.0 Я думаю, что в наши дни это даже называется Центром обновления Windows, его всего 26мб, и вы устанавливаете его только один раз. Если вы хотите, чтобы что-то родное для Win32, вернитесь к неуправляемому C ++.

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

2
ответ дан 27 November 2019 в 05:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: