【问题标题】:Error when installing package "Newtonsoft.Json"安装包“Newtonsoft.Json”时出错
【发布时间】:2020-02-23 13:08:15
【问题描述】:
Install-Package : Could not install package 'Newtonsoft.Json 12.0.2'. You are trying to install this 
package into a project that targets 'native,Version=v0.0', but the package does not contain any 
assembly references or content files that are compatible with that framework. For more information, 
contact the package author.
At line:1 char:1
+ Install-Package Newtonsoft.Json
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Install-Package], Exception
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets. 
   Instal

【问题讨论】:

  • 确保控制台窗口指向正确的解决方案。
  • 您好,您的项目类型是什么? C++/CLI 项目?
  • 参见Github/nuget/#8195...如果您尝试将一个 nuget 包安装到 CLL/CLI 项目中,这是预期的行为,因为现在不支持这种情况:(

标签: json.net nuget visual-studio-2019


【解决方案1】:

错误原因:

当您尝试将一个 nuget 包安装到 C++/CLI 项目中时,总是会出现此错误。虽然C++/CLI 项目是托管代码,但目前Nuget 不支持这种情况。

Github/Nuget 中有一个未解决的问题,请参阅 #8195,如果有任何更新,您可以跟踪此问题以获取通知。

解决方法:

  1. 你可以试试Daniel's answer,它可以帮助很多有类似问题的会员。

  2. 对我来说,因为 nuget 包实际上是一个 xx.zip 文件,其中包含程序集和一些文件。我们可以下载xx.nupkg(nuget package)文件here

然后你会得到一个xx.nupkg 文件,将其重命名为xx.zip 并解压。您现在可以看到一个 lib 文件夹,其中包含不同目标框架的程序集。如果您的 C++/CLI 项目面向 .net 框架 4.5 及更高版本,请选择 net45 文件夹。如果您的项目以 .net framework 4.0 为目标,请选择 net40 文件夹...

我们可以将Newtonsoft.Json.dllNewtonsoft.Json.xml 复制到项目目录或任何本地文件夹。然后右键单击 project=>Add reference=>browse=> 手动添加该引用。之后,输入using namespace Newtonsoft 以检查 Intellisense 是否可以很好地识别此引用。

如果你和我一样在编译构建这个项目的时候遇到错误C4199,试试this

希望以上所有帮助:)

【讨论】:

  • 谢谢。我使用丹尼尔的回答修复了错误。但是我在这里遇到了另一个错误link。你能帮我看看吗
  • @Nikki 对不起,但我不熟悉这个问题,您的另一个链接中的错误似乎是您的代码的一个问题。我从未使用过 push_back 功能 :( 如果我的回答有助于解决您在这里的原始问题,您可以考虑接受它作为答案,请参阅what...。只是一个提醒 :)
猜你喜欢
  • 1970-01-01
  • 2016-09-28
  • 2018-01-02
  • 2015-10-01
  • 2013-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多