我们在CI构建中通过PowerShell预构建脚本安装了一些软件包。最近,我们收到了部分成功的电子邮件通知,其中提供了以下信息:
' Microsoft.CSharp'已经为System.Dynamic.Runtime'
定义了依赖关系
以下是PowerShell脚本中生成信息的命令:
cd $source\MyNet\MyWeb\MyComp.WebViewer\packages
&"C:\Program Files\Microsoft Team Foundation Server 14.0\Tools\Nuget.exe" install newtonsoft.json
我希望能够处理/忽略此消息,以便收到完全成功的构建通知。
否则它似乎没有造成任何问题。
是否有人有任何可能绕过此类错误的nuget.exe命令行参数?
答案 0 :(得分:18)
错误消息already has a dependency defined for
通常表示您使用的NuGet版本太旧。所以你应该考虑更新它。
当使用的NuGet包使用与您正在使用的NuGet版本不知道的目标框架的组依赖关系时,可能会发生此特定错误。
答案 1 :(得分:1)
在我的情况下,我在安装一些Nuget Package时收到一条消息:
'PackageA'已经为'PackageB'定义了依赖关系
我在线搜索Nuget Package Manager中的PackageB,然后点击安装按钮再次安装, 然后遇到了问题:
该软件包需要NuGet客户端版本“2.12”或更高版本,但当前的NuGet版本为“2.7.40911.287”。
我做这个解决方案Nuget version not correct?
升级Nuget Package Manager版本后,我可以安装PackageB,然后我可以安装PackageA。
答案 2 :(得分:0)
我在使用NuGet加载Google.Apis.Sheets.v4时遇到了类似的问题。
将我的VS.NET 2013从NuGet 2.8.60723.765升级到2.12.0.817解决了它。
要查看您的NuGet版本号,请使用Tools / NuGet Package Manager / Package Manager控制台转到Package Manager控制台提示符(PM>)。然后,输入" $ host"在PM>提示。
PM> $host
Name : Package Manager Host
Version : 2.12.0.817
InstanceId : 38c7734c-3169-4933-b934-23dab18055f2
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture : en-US
CurrentUICulture : en-US
PrivateData : NuGetConsole.Host.PowerShell.Implementation.NuGetPSHost+Commander
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspace
PM>
要更新NuGet,请选择工具/扩展程序和更新....然后,选择"更新"然后点击"更新" " NuGet Package Manager"的按钮。
更新完成后,重新启动Visual Studio并重新检查NuGet版本号。