恢复 NuGet 包时出错:"Invalid restore input. No target frameworks specified."

Error occurred while restoring NuGet packages: "Invalid restore input. No target frameworks specified."

如何解决 Visual Studio (MSBuild) 错误消息:

Error occurred while restoring NuGet packages: "Invalid restore input. No target frameworks specified."

问题是由 .sln 文件中指定的错误项目类型引起的。在解决方案文件中,项目类型为 {D954291E-2A0B-460D-934E-DC6B0785DB48} (Shared Project / Windows Store App Universal)。

...
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SomeProject", "SomeProject", "{...}"
...

但实际上项目是C#(SDK项目)。通过将解决方案文件中的 GUID/UUID 更改为正确的 {9A19103F-16F7-4668-BE54-9A1E7A4F7556}.

解决了该问题
...
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SomeProject", "SomeProject", "{...}"
...

我最近在构建针对多个框架的 NuGet 包的项目中遇到此错误。

简而言之,我的 .csproj 文件中有这个(可能是 git 合并错误):

<TargetFrameworks>netstandard2.1;net462;net48;net48</TargetFrameworks>

注意 net48 的重复条目。奇怪的是它仍然建立在我的机器上(大概是因为某些东西被缓存在磁盘上的某个地方)。一旦我删除了重复的条目,一切又开始工作了。

警告: 看来你不能只使用 JetBrains Rider IDE 而没有 visual studio !

如果您没有将 Microsoft 的 Visual Studio 解决方案与处理您的项目的所有插件库一起安装,那么 Rider IDE 也会发生此问题。

因为安装 Rider + .NET Framework + MSbuild JetBrains 没有解决问题。

也许是显而易见的,但对于 .NET 编码世界的所有新开发人员来说并非如此。