求助:Visual Studio 2026无法构建.NET 10项目但可正常构建.NET 9
核心问题
VS2026构建.NET10项目时,C#编译器(csc.exe)启动时读取到的DOTNET_ROOT被错误设置为C:\Program Files,而非正确的C:\Program Files\dotnet。但系统全局环境变量、构建初始日志均显示该变量配置正确,且命令行/VS Code可正常构建,说明是VS构建流程中某个环节临时覆盖了变量。
排查解决步骤
检查VS局部环境变量配置
打开VS2026,进入「工具→选项→项目和解决方案→环境变量」,查看是否存在自定义的DOTNET_ROOT变量被错误设置;同时检查项目根目录下的Directory.Build.props/Directory.Build.targets文件,确认无硬编码修改DOTNET_ROOT的配置。重置VS MSBuild缓存与配置
关闭所有VS实例,删除%APPDATA%\Microsoft\VisualStudio\18.0_xxxx(对应VS2026版本的文件夹)下的MSBuild缓存目录;或执行命令devenv /ResetSettings重置VS默认设置(建议先备份自定义配置),重启后重新构建。验证权限与路径有效性
右键VS2026快捷方式选择「以管理员身份运行」,排除权限限制导致的路径读取异常;同时确认C:\Program Files\dotnet\sdk\10.0.100\Roslyn\bincore\目录的读取/执行权限对VS运行账户开放。修复VS2026的.NET10集成组件
打开Visual Studio Installer,选择VS2026的「修改」选项,确认“.NET 10 SDK”和“C#和Visual Basic开发工具”组件已安装,点击「修改」完成组件修复;修复后清理项目的bin/obj目录再重新构建。临时强制指定DOTNET_ROOT(应急方案)
若以上方法无效,可在项目的.csproj文件中添加以下配置,强制编译器使用正确的.NET路径:<PropertyGroup> <DotNetRoot>C:\Program Files\dotnet</DotNetRoot> </PropertyGroup>
内容的提问来源于stack exchange,提问作者Gobie74

