Mac平台构建C#控制台应用出现MSB4092错误求助
解决.NET SDK构建时MSB4092语法错误问题
错误根源
从错误日志可见,SDK内置的Microsoft.NET.Sdk.targets文件中的MSBuild条件表达式存在语法错误:
$([MSBuild]::VersionGreaterThanOrEquals($(TargetFrameworkVersion'), '6.0'))
其中$(TargetFrameworkVersion')多了一个多余的单引号,正确写法应为$(TargetFrameworkVersion)。这说明你的.NET 7 SDK安装文件已损坏,导致所有依赖该SDK的项目(控制台、MAUI等)都无法正常构建。
修复步骤
1. 卸载损坏的.NET 7 SDK
- 打开终端,先确认已安装的SDK版本:
dotnet --list-sdks - 定位到
7.0.307版本,执行命令删除该SDK目录:sudo rm -rf /usr/local/share/dotnet/sdk/7.0.307
2. 重新安装.NET 7 SDK
从微软官方渠道下载适配Mac OS Ventura 13.5的.NET 7 SDK安装包,完成安装后,在终端验证版本:
dotnet --version
确认输出为7.0.307(或同分支的最新修复版本)。
3. 清理项目与IDE缓存(可选)
- 删除现有项目的
bin和obj目录,避免残留编译缓存 - 关闭Visual Studio for Mac,删除IDE缓存目录:
rm -rf ~/Library/Caches/VisualStudio/17.6
4. 验证修复
在终端创建一个新的控制台项目并运行,确认构建正常:
dotnet new console -n TestDemo cd TestDemo dotnet run
如果能正常输出Hello, World!,说明问题已解决,再回到原项目尝试构建即可。
内容的提问来源于stack exchange,提问作者paul h
相关产品推荐
相关产品推荐

