我正在安装NewtonSoft.Json来解析.Net应用程序中的Json。当我使用VS 2012时,它无法通过NuGet安装。 这是我得到的错误:
'Newtonsoft.Json' already has a dependency defined for 'Microsoft.CSharp'
我试图将dll复制过来并使用它,似乎在这个版本(10.0.2)中搞砸了一些依赖项。
经过几个小时的研究,最后我发现它是VS2012和Newtonsoft Json 10.0.2的兼容性问题。
答案 0 :(得分:60)
因为VS 2012的NuGet包管理器(版本2.8.60318.667)不支持.NETStandard(用于最新的Newtonsoft Json Parser Lib)。 https://github.com/NuGet/Home/issues/3131
我通过安装旧版本的Newtonsoft Json解决了这个问题:
PM> Install-Package Newtonsoft.Json -Version 9.0.1
答案 1 :(得分:12)
安装/恢复目标为.NET标准的NuGet包需要NuGet.exe版本3.4 +。
从3.4的发行说明:https://docs.microsoft.com/en-us/nuget/release-notes/nuget-3.4
新功能
- 支持netstandard和netstandardapp框架标记
此版本的NuGet附带VS2015 Update 2
NuGet 3.4于2016年3月30日发布,作为Visual Studio 2015 Update 2和Visual Studio 15预览版的一部分
答案 2 :(得分:4)
我使用VS2015并创建一个依赖于Newtonsoft.Json版本= 10.0.3的NuGet包时遇到了同样的问题。我使用了Vin.X在他的答案中提出的方法作为解决方法。
将Newtonsoft.Json version = 9.0.1安装到项目中后,在.nuspec文件中添加以下说明。
<dependencies>
<dependency id="Newtonsoft.Json" version="10.0.3" />
</dependencies>
使用您的软件包的应用程序将安装Newtonsoft.Json version = 10.0.3以及您的软件包作为项目的依赖项。
答案 3 :(得分:0)
尝试从解决方案软件包目录中删除软件包的现有版本,然后 尝试以下命令。它对我有用。
var r = 80;
var g = 130;
var b = 211;
var hex = 0xff000000 | ( r << 16) | ( g << 8) | b;
console.log((hex >>> 0).toString(16));
答案 4 :(得分:0)
我遇到了同样的问题。我认为您需要更新VS2013的NuGet(*还可能是VS2012)
这里
https://marketplace.visualstudio.com/items?itemName=NuGetTeam.NuGetPackageManagerforVisualStudio2013
答案 5 :(得分:0)
这个问题不是专门针对TFS / Azure Devops的,但是今天早晨我在标题中遇到了一个例外,我的解决方案是必须降级版本。
我们在构建服务器上更新了Visual Studio,并且所有构建都中断了。
以下是我当前定位的版本:
我们发现我们需要在任务列表的开头添加一个名为NuGet Tool Installer
的任务,以使其强制使用5.4.0版本,因为自动发现选择的是较旧的版本并且失败了。
此功能正常运行并还原了软件包后,便无法打包我们的源以进行分发。因此,我们拥有NewtonSoft.Json的最新NuGet.exe,.NET Framework参考(即非netstandard),但仍无法正常工作。我们以前使用的是NuGet Packager
,但我不确定该任务何时被弃用,但是直到VS更新,它仍然对我们有用。有一个名为NuGet
的新任务,其中包含用于不同功能的下拉菜单。
选择Pack
,并配置字段以模仿不推荐使用的任务导致成功构建的内容。
答案 6 :(得分:-1)
尝试安装Newtonsoft MsgPack,它会将Newtonsoft.json dll安装到您的项目中。