You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法在全新Windows Server 2016机器上构建VS2017项目求解决

解决MSBuild找不到.NET Framework 4.5引用程序集的问题

嘿,我之前碰到过一模一样的情况,给你几个靠谱的解决方案:

1. 补装VS2017构建工具里的.NET 4.5目标包

Windows Server 2016本身预装了更高版本的.NET Framework(比如4.6.2),但MSBuild编译针对4.5的项目时,需要的是目标引用程序集(用来保证编译输出符合特定框架规范),不是系统自带的运行时。你之前装了.NET 4.5.2开发包,但可能没勾选VS构建工具里的4.5目标组件:

  • 找到VS2017构建工具的安装程序(如果桌面没有,去C:\Program Files (x86)\Microsoft Visual Studio\Installer里找vs_installer.exe)
  • 点击「修改」,切换到「单个组件」标签
  • 在「SDK、库和框架」分类下,找到「.NET Framework 4.5 目标包」,勾选后完成安装

2. 手动复制引用程序集(如果第一种方法行不通)

如果安装目标包遇到异常,可以从其他装有VS2017或.NET 4.5目标包的机器上,复制以下路径的文件夹到你的Server 2016对应位置:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5
复制完成后,MSBuild应该就能识别到需要的引用程序集了。

3. 调整项目的目标框架版本

如果你的项目不需要严格绑定.NET 4.5,可以直接把项目的目标框架改成已安装的版本(比如4.5.2或者Server 2016自带的4.6.2):

  • 右键项目 → 属性 → 应用程序 → 目标框架,选择已有的高版本框架
  • 重新编译项目,MSBuild会自动使用对应版本的引用程序集,不会再报错

为啥会出现这个问题?

Windows Server 2016预装的是高版本.NET运行时,但运行时和编译用的引用程序集是完全不同的东西。MSBuild编译特定版本的项目时,必须依赖对应版本的引用程序集来约束编译逻辑,而这些引用程序集不会随系统预装,得通过VS构建工具的组件或者专门的目标包单独安装。

内容的提问来源于stack exchange,提问作者abenci

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:31:48