指定可运行生成的可执行文件的子系统的最低版本,从而确定可执行文件可在其上运行的 Windows 版本。 通常,此选项可确保可执行文件可以利用早期版本的 Windows 不可用的特定安全功能。
注释
若要指定子系统本身,请使用 -target 编译器选项。
语法
-subsystemversion:major.minor
参数
major.minor
子系统的最低要求版本,以主版本和次要版本的点表示法表示。 例如,如果将此选项的值设置为 6.01,则可以指定应用程序无法在早于 Windows 7 的作系统上运行,如本主题后面的表所述。 必须指定和minor
指定为整数的值major
。
版本中的前导零 minor
不会更改版本,但尾随零会更改。 例如,6.1 和 6.01 引用同一版本,但 6.10 引用不同的版本。 建议将次要版本表示为两位数,以避免混淆。
注解
下表列出了 Windows 的常见子系统版本。
Windows 版本 | 子系统版本 |
---|---|
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:
如果使用 MSBuild,则默认值为 6.00,面向 .NET Framework 4.5,并且尚未设置之前在此列表中指定的任何编译器选项。
如果上述条件都不为 true,则默认值为 4.00。
设置此选项
若要在 Visual Studio 中设置 -subsystemversion 编译器选项,必须打开 .vbproj 文件并为 MSBuild XML 中的属性指定值 SubsystemVersion
。 无法在 Visual Studio IDE 中设置此选项。 有关详细信息,请参阅本主题前面的“默认值”或 通用 MSBuild 项目属性。