安装Nuget包忽略一个依赖

时间:2017-05-30 16:26:49

标签: asp.net visual-studio nuget

我确定之前已经问过,但我花了将近一个小时在Stackoverflow上搜索,但没有找到任何答案。对不起,如果我错过了。

我需要安装一个没有一个(只有一个)依赖项的Nuget包。

特别是,我将SignalR添加到ASP.NET MVC应用程序中,我需要跳过jQuery依赖,因为我已经从CDN托管手动添加了它。在我的项目中不需要它。

但是我需要所有其他依赖项,我需要它们由Nuget管理,而不是手动管理。因此,如果作者在下一个版本中添加了一些新的依赖项,例如Owin或其他东西,它将被自动拉入。

我想出的唯一解决方案是安装包含所有依赖项的包,然后运行

Uninstall-Package jQuery -Force

这可以吗?这对我来说似乎有点“hacky”,还是很好?还有其他选择吗?

3 个答案:

答案 0 :(得分:0)

  

我需要安装一个没有一个(只有一个)的Nuget软件包   的依赖关系。

当前不可能通过命令行,因为Install-Package没有任何参数可以跳过特定的依赖项(在最新的Microsoft文档参考中可见)。

如果要避免所有依赖项,请使用以下命令(因为您无法跳过特定的依赖项,因为Microsoft Docs中没有引用它):

Install-Package [-Id] <string> [-Version <string>] [-IgnoreDependencies] [-ProjectName <string>] [-Source <string>] [-IncludePrerelease] [-FileConflictAction] [-DependencyVersion <dependencyVersion>] [-WhatIf]

有关Install-Package document from Microsoft的参数的详细信息:

IgnoreDependencies

docker run -it gcr.io/tensorflow/tensorflow:latest-devel cd /tensorflow bazel build tensorflow/python/tools:strip_unused :仅安装此软件包而不安装其依赖项

答案 1 :(得分:0)

  

这可以吗?这对我来说似乎有点“hacky”,还是很好?还有其他选择吗?

简单的答案是“这取决于你手动添加的jQuery依赖的版本”。

您会注意到Microsoft.AspNet.SignalR的依赖性限制是:jQuery (>= 1.6.4)

enter image description here

因此,如果您手动安装的jQuery版本高于Microsoft.AspNet.SignalR的依赖项限制版本,则可以卸载jQuery,然后安装包Microsoft.AspNet.SignalR。因此,您的方法是可行的。

注意:安装软件包Microsoft.AspNet.SignalR后,如果需要,可以更新软件包jQuery的版本。

相比之下,你手动安装的jQuery版本低于1.6.4并且你不想使用该软件包的高版本,你不能用你的方法做,否则,NuGet会安装安装包Microsoft.AspNet.SignalR后的jQuery版本1.6.4。

答案 2 :(得分:0)

我最终要做的是安装jQuery nuget包,然后只需从/Scripts目录中删除文件

现在,所有与jQuery相关的软件包都很高兴,并且我的项目不会因为不需要的文件而