Visual Studio 2019编译.NET Core项目出现CSC警告CS1668如何解决
原因分析
- 警告
CS1668的本质是C#编译器(csc)读取当前shell的LIB环境变量时,检测到变量内包含不存在的目录路径。你没有手动设置过该变量,是因为Visual Studio安装/升级时会自动往系统或用户环境变量写入VC工具链路径,卸载旧版VC工具后这些旧路径没有被同步清理,或是你启动Git Bash前加载过VS开发者命令行的环境配置。 - 你当前使用的
.NET 5Windows Forms项目本身不需要VC的ATL/MFC、VC运行库依赖,所以该警告不影响编译结果,生成的程序可以正常运行。 - 警告中的版本号
14.26.28801是旧版VC工具链的版本号,你可以自行打开C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\目录确认,该版本文件夹已经不存在。
解决方法
方案1:临时生效(仅当前Git Bash会话有效)
在运行MSBuild前执行命令清除当前会话的LIB变量即可:
unset LIB
也可以直接在构建命令前加前缀临时覆盖变量:
LIB= MSBuild.exe
该方案不需要修改全局配置,适合偶尔使用Git Bash构建的场景。
方案2:永久生效(修正全局环境变量)
- 按下
Win+R输入sysdm.cpl打开系统属性面板,切换到「高级」标签页,点击「环境变量」按钮 - 分别在「用户变量」和「系统变量」列表中找到名为
LIB的变量 - 点击编辑,删除警告提示的两个不存在的路径:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\ATLMFC\lib\x64C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\lib\x64
- 保存修改后重启Git Bash,后续构建就不会再触发该警告。
方案3:需要保留VC路径的场景
如果你日常需要使用VC编译能力,可以先查看C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\目录下实际存在的VC工具版本号,把LIB变量里的旧版本号14.26.28801替换为实际存在的版本号即可。
内容的提问来源于stack exchange,提问作者MHebes
相关产品推荐
相关产品推荐

