在带有 dotnet 7.0.105 的 Ubuntu 23.04 上,我尝试构建一个 C# 项目(在 Mono 中):
dotnet build 'appname'.csproj
这会导致错误消息:
.NET 的 MSBuild 版本 17.4.3+7e646be43 确定要恢复的项目...
所有项目都是最新的以便恢复。
/usr/lib/dotnet/sdk/7.0.105/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(1226,3):错误MSB4019:导入的项目“/usr/lib/dotnet/ sdk/7.0.105/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.targets”未找到。确认进口报关单中的表述
“;/usr/lib/dotnet/sdk/7.0.105/Sdks/Microsoft.NET.Sdk/targets/../../Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.targets “是正确的,并且该文件存在于磁盘上。
构建失败。
/Microsoft.NET.Sdk.WindowsDesktop
目录中缺少/usr/lib/dotnet/sdk/7.0.105/Sdks
是正确的。这并不奇怪,因为 WindowsDesktop 已过时并已从 7.0.105 中删除。
文件 'appname'.csproj
以行 <Project Sdk="Microsoft.NET.Sdk">
开头,这应该是正确的。
我还能做什么?
Ubuntu 提供的
dotnet-sdk-*
软件包不包含 Microsoft.NET.Sdk.WindowsDesktop
SDK。
对于 24.04 之前的 Ubuntu 版本,最简单的解决方案是 从 Microsoft feed 安装软件包。
从 Ubuntu 24.04 开始,Microsoft 不再发布自己的软件包,因此您唯一的途径是手动安装。