还原NuGet包时出错:"无效的还原输入。未指定目标框架。"

10

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

还原NuGet包时发生错误:"无效的还原输入。未指定目标框架。"

4个回答

7

警告:似乎您无法在没有Visual Studio的情况下使用JetBrains Rider IDE!

如果您未安装Microsoft的Visual Studio以及与项目相关的附加库(例如Xamarin),则Rider IDE可能会出现此问题。

安装Rider + .NET Framework + MSbuild可能不足以解决此问题。

这可能对于尤其是新手.NET编码的开发人员来说很明显,但并非所有人都知道。请注意以上内容,以避免不必要的麻烦。


2
安装带有Xamarin插件的VS对我很有效。 - Dustin Williams
那些没有 Vexing Studio 许可证的人可能可以通过获取 Xamarin SDK(我自己没有尝试过)来解决它。 - CervEd

5

这种情况发生在我的电脑崩溃时我正在使用一个解决方案。当我再次打开它时,没有任何东西能够构建。之前提到的解决方案都没有起作用。以下是解决方法:

  1. 关闭包含解决方案的 Visual Studio
  2. 在文件资源管理器中进入解决方案所在的文件夹
  3. 删除 .vs 隐藏文件夹
  4. 重新打开解决方案

我使用的是 VS 17。


删除.vs文件夹在我的情况下没有起到帮助的作用。 - undefined

3

我最近在一个构建多个框架的NuGet包的项目中遇到了这个错误。

简而言之,我在我的 .csproj 文件中有这样的代码(可能是 git 合并时出现的错误):

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

请注意 net48 的重复条目。奇怪的是,它仍然在我的计算机上构建成功(可能是因为某些东西被缓存在磁盘上)。一旦我删除了重复的条目,一切又恢复正常了。


1
谢谢。这是因为我有一个重复的条目。 - Andy Reed

1
问题是由于在.sln文件中指定了错误的项目类型引起的。在解决方案文件中,该项目具有类型{D954291E-2A0B-460D-934E-DC6B0785DB48}(共享项目/Windows Store应用通用)。
...
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SomeProject", "SomeProject", "{...}"
...

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

...
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SomeProject", "SomeProject", "{...}"
...

在我的情况下,我怀疑在一次错误的合并之后,解决方案文件出现了问题。与其试图找出哪些项目/解决方案项的GUID是错误的,我最终选择删除解决方案文件,在Visual Studio中使用空白解决方案模板创建一个新的解决方案文件,然后逐个添加项目来重新构建解决方案文件。这似乎解决了问题。 - Matthew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接