运行没有安装.Net Framework的c#3应用程序?

时间:2009-02-05 04:21:44

标签: .net-3.5 deployment c#-3.0 frameworks

这可能看起来像一个愚蠢的问题,但是可以构建一个使用c#3(.Net Framework 3.5)构建的应用程序并将其部署到没有安装3.5框架的计算机上吗?即bin部署是否适用于System.Core和其他3.5个dll?

我真的想使用lambdas,linq,Func等构建我的应用程序但我的客户端不允许在他们的机器上安装3.0或3.5框架(他们确实安装了2.0框架)。

4 个答案:

答案 0 :(得分:9)

您可以使用C#3.0并定位.NET 2.0。以下C#3.0功能完美运行:

  • 隐式输入的局部变量(var)
  • 匿名类型
  • Lambda表达式转换为委托(虽然你没有Func / Action委托 - 你可以自己定义)
  • 集合初始值设定项
  • 对象初始值设定项
  • 隐式类型数组
  • 部分方法
  • 自动属性

扩展方法需要System.Core的属性,但您可以定义自己的属性。 如果可以调用正确的方法,查询表达式将起作用 - 因此您可以部署LINQBridge并且仍然具有LINQ to Objects。

遗憾的是,表达式树根本不起作用。

有关详细信息,请参阅my article on .NET versions

请勿尝试在2.0系统上部署3.0或3.5的

答案 1 :(得分:0)

不,不可能。它不仅仅是复制正确的dll并将其与您的应用程序一起发送。

话虽这么说,如果你的应用程序不使用很多“新”功能,你可以使用Mono来部署你的应用程序。 Mono是一个开源的,我猜测它的头部比.net框架小。

答案 2 :(得分:0)

这可以通过一些应用程序虚拟化产品来完成。我知道我们使用Thinstall年前部署.Net应用程序而不必强迫用户安装.net(它是一个CD Autoplay应用程序)。

答案 3 :(得分:0)

我不确定,但我认为您可以尝试Static Compilation in Mono