在未安装 .Net Framework 的情况下运行 c# 3 应用程序?

Posted

技术标签:

【中文标题】在未安装 .Net Framework 的情况下运行 c# 3 应用程序?【英文标题】:Run c# 3 app without .Net Framework installed? 【发布时间】:2010-10-05 14:24:44 【问题描述】:

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

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

【问题讨论】:

我不知道这个问题的答案,但我知道在 .NET Framework 可再发行包之外分发这些核心 DLL 违反许可协议 - 所以即使有可能,这是不明智的。 【参考方案1】:

不,不可能。它不像复制正确的 dll 并将它们与您的应用程序一起发送那么简单。

话虽如此,如果您的应用程序没有使用很多“新”功能,您可以使用 Mono 来部署您的应用程序。 Mono 是一个开源的,我猜它的头比 .net 框架要小。

【讨论】:

【参考方案2】:

这可以通过一些应用程序虚拟化产品来完成。我知道我们在几年前使用Thinstall 部署了一个.Net 应用程序,而无需强制用户安装.net(它是一个CD 自动播放应用程序)。

【讨论】:

【参考方案3】:

您可以使用 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 系统之上部署 bits 3.0 或 3.5。

【讨论】:

【参考方案4】:

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

【讨论】:

以上是关于在未安装 .Net Framework 的情况下运行 c# 3 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何在未安装 office 的情况下从 winform vb.net 2008 导出到 excel?

是否可以在未安装 VS 的情况下从 MSBuild 命令行运行 FxCop 代码分析?

win10不能安装NET framework

Win10系统无法安装.net framework 4.0怎么办

安装.Net Framework 4.8 时出现未安装成功

Postman安装出错.NET Framework 4.5 failed to install