什么时候需要在客户端机器上安装 .NET 框架?

Amo*_*ous 6 .net c# windows

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

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

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

namespace HelloWorld{
    class Hello {
        static void Main() {                    
             MessageBox.Show("Hello World.");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

谢谢

lea*_*gcs 6

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

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

这是一个表格,其中列出了哪些 .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
Run Code Online (Sandbox Code Playgroud)

如果您需要知道如何更改目标框架,请尝试此链接。基本上,转到项目属性并更改“目标框架”。