Запустить приложение c # 3 без установленного .Net Framework? - PullRequest
3 голосов
/ 05 февраля 2009

Это может показаться глупым вопросом, но может ли сборка приложения с помощью c # 3 (.Net Framework 3.5) быть построена и развернута на машине, на которой не установлена ​​платформа 3.5? т.е. работает ли развертывание бина для System.Core и других 3.5 библиотек?

Мне бы очень хотелось создать свое приложение, используя lambdas, linq, Func и т. Д., Но мой клиент не имеет права устанавливать платформы 3.0 или 3.5 на свои машины (на них установлена ​​платформа 2.0).

Ответы [ 4 ]

9 голосов
/ 05 февраля 2009

Вы можете использовать C # 3.0 и целевой .NET 2.0. Следующие функции C # 3.0 работают отлично:

  • Неявно типизированные локальные переменные (var)
  • Анонимные типы
  • Лямбда-выражения, преобразованные в делегаты (хотя у вас не будет делегатов Func / Action - вы можете определить их сами)
  • Инициализаторы коллекции
  • Инициализаторы объектов
  • Неявно типизированные массивы
  • Частичные методы
  • Автоматические свойства

Методы расширения требуют атрибут из System.Core, но вы можете определить свой собственный. Выражения запроса будут работать, если доступны правильные методы для вызова - так что вы можете развернуть LINQBridge и при этом иметь LINQ to Objects, например.

К сожалению, деревья выражений вообще не будут работать.

См. мою статью о версиях .NET для получения дополнительной информации.

Не пытайтесь развернуть бит версии 3.0 или 3.5 поверх системы 2.0.

0 голосов
/ 05 февраля 2009

Я не уверен, но я думаю, что вы можете попробовать Статическая компиляция в моно

0 голосов
/ 05 февраля 2009

Это можно сделать с некоторыми продуктами для виртуализации приложений. Я знаю, что мы использовали Thinstall года назад для развертывания приложения .Net без необходимости заставлять пользователя устанавливать .net (это было приложение автозапуска CD).

0 голосов
/ 05 февраля 2009

Нет, это невозможно. Это не так просто, как просто скопировать нужные библиотеки и отправить их вместе с вашим приложением.

При этом, если ваше приложение не использует много "новых" функций, вы можете использовать Mono для развертывания приложения. Mono - это открытый исходный код, и я полагаю, его голова меньше, чем .net framework.

...