指定生成的可执行文件可以运行的子系统的最低版本,从而确定可执行文件可以运行的 Windows 版本。最常见的情况是,该选项可确保可执行文件利用旧版本 Windows 所不具备的特定安全功能。
注意
要指定子系统本身,请使用 -target 编译器选项。
-subsystemversion:major.minor
参数
major.minor | 子系统所需的最小版本,用主版本和次版本的点号表示。例如,如果将该选项的值设置为 6.01,就可以指定应用程序不能在旧版本的 Windows 7 操作系统上运行,本主题后面的表格对此进行了说明。必须以整数形式指定主版本和次版本的值。 |
次版本中的前导零不会改变版本,但尾部零会。例如,6.1 和 6.01 表示同一版本,但 6.10 表示不同的版本。我们建议用两位数表示次版本,以避免混淆。
下表列出了常见的 Windows 子系统版本。
Windows 版本 |
子系统版本 |
Windows 2000 |
5.00 |
Windows XP |
5.01 |
Windows Server 2003 |
5.02 |
Windows Vista |
6.00 |
Windows 7 |
6.01 |
Windows Server 2008 |
6.01 |
Windows 8 |
6.02 |
-subsystemversion 编译器选项的默认值取决于下列条件:
•如果设置了下列编译器选项,默认值为 6.02:
o-target:appcontainerexe
o-target:winmdobj
o-platform:arm
•如果使用的是 MSBuild,目标是 .NET Framework 4.5,且未设置本列表前面指定的任何编译器选项,则默认值为 6.00。
•如果前面的条件都不成立,默认值为 4.00。
要在 Visual Studio 中设置 -subsystemversion 编译器选项,必须打开 .xsproj 文件并在 MSBuild XML 中指定 SubsystemVersion 属性的值。在 Visual Studio IDE 中无法设置该选项。