创建大量非必需项目引用的 NuGet 包

NuGet packages that create a large number of non-required project references

升级到 VS 2017 和 VSTS Online 后,我正在查看我们的 TFS 访问代码。

我从 on this site that the recommended way to access the TFS libraries is via a NuGetPackage.

中得知

太好了,这肯定比从 Team Explorer 安装文件夹中引用要好。

但是,有问题的 NuGet 包添加了超过 45 个对我的项目的引用。

我相信我只使用了其中的 4-6 个。

我发现 this question 讨论了包文件不必进入源代码管理这一事实。

很高兴知道这一点。

但是,引用已添加为 "Copy Local",因此它们当前都被复制到我的输出目录中。这导致我的应用程序的大小增加了两倍多。这似乎不是一个好的做法。

人们通常会忽略这一点并与他们获得良好的依赖管理这一事实进行权衡吗?

或者手动删除不需要的引用...?以后的更新会把引用放回去吗?

还是我以某种方式错误地使用了包裹...?

此站点上有很多 NuGet 问题。我确实进行了搜索,但如果这是重复的,请接受我的歉意。

Do people usually just ignore this and trade off against the fact they are getting great dependency management?

将所有依赖项添加到项目是 NuGet 的默认行为。目前,没有这样的选项,因此我们可以选择其中的一些依赖项。

尽管所有依赖项都作为 "Copy Local" 添加到项目中,但当我们发布应用程序时,我们可以通过将发布状态从 Include (Auto) 更改为 Exclude 来排除那些不需要的依赖项:

在这种情况下,那些不需要的引用不会包含在应用程序中。

Or manually remove the non-required references...? Do future updates put the references back?

是的,您可以手动删除那些不需要的引用,但是当您下次更新包时,那些删除的引用将重新添加。

此外,正如您所说,您只使用了其中的 4-6 个。您可以尝试自定义一个仅包含 4-6 个引用的 nuget 包。

希望对您有所帮助。