c# - 何时需要在客户端计算机上安装 .NET 框架?

标签 c# .net windows

在构建 C# 应用程序时,我不确定何时需要在客户端计算机上安装 .NET 框架。

例如有一个控制台应用程序:

using System;
using System.IO;
using System.Windows.Forms;

namespace HelloWorld{
    class Hello {
        static void Main() {                    
             MessageBox.Show("Hello World.");
        }
    }
}

客户端是否需要安装 .NET 运行时?是否可以通过包含 System.Windows.Forms.dll 并将其合并到 exe 中来绕过此问题?

谢谢

最佳答案

必须安装 .NET Framework。即使您将 .NET Framework 的某些部分嵌入到您的程序集中(例如使用 Fody/Costura)或将它们作为 DLL 包含在内,.NET Framework 程序集几乎从不独立。例如,System.Windows.Forms.dll 将引用 System.Windows.Forms.dll 外部的 .NET 框架部分。

幸运的是,.NET 框架通常默认安装在 Windows 上,因此为了方便起见,您可以只针对特定版本的 Windows。例如,我通常以 4.0 为目标并假设用户运行的是 Windows 7 SP1 或更高版本。任何拥有最新 Windows 7 的人都应该运行 SP1,因为它是 Windows 更新。

这是一张表格,其中列出了哪个操作系统 (source) 上的 .NET 版本。

Windows Version | Default .NET
==============================
XP              | None
Vista           | 3.0
7               | 3.5
7 SP1           | 4.0
8               | 4.5
8.1             | 4.5.1
10              | 4.6

如果您需要了解如何更改目标框架,try this link .基本上,转到项目属性并更改“目标框架”。

关于c# - 何时需要在客户端计算机上安装 .NET 框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32981707/

相关文章:

asp.net - 为什么 .NET 请求要等待另一个请求?

windows - 在 Windows Forms 窗体上动态添加控件

c - 我的 SHA256 哈希函数有什么问题?

c# - 使用 NetNamedPipe 的 WCF 多个应用程序

c# - LINQ 中的分组、求和

.net - .NET 中的局部变量命名约定

windows - WIX:引用源文件但不将其安装到目标计算机

C# Winforms bold treeview 节点不显示整个文本

c# - Entity Framework 6 和 Sqlite 的问题。 Any() 查询失败,但 Contains() 查询正常

c# - 运算符 '||' 不能应用于类型 'string' 和 'bool' 的操作数