繁体   English   中英

从 .NET Standard 项目的 csproj 获取所有依赖项的列表

[英]Getting a list of all dependencies from a .NET Standard project's csproj

自从我在 Visual Studio 中使用(相对)新的 .NET 标准库项目类型以来,我在获取我的项目所需的完整 DLL 文件集时遇到了一些问题。

问题通常仅限于我引用为 NuGet 包的第 3 方库。 我注意到当我构建它时,这些不会被复制到我的项目的输出文件夹中。 在经典项目类型中,情况并非如此。

虽然我可以理解此更改为 .NET Standard 项目带来的整理效果,但我现在面临一个问题。 有时我绝对需要能够获得我的项目所依赖的所有文件的完整列表!

我有几种不同的情况,我可能出于某种原因需要此列表,但我认为对我来说最重要的是,当我想从csproj本身收集这些文件时,就在它构建之后。 在那里,我有一个自定义的 MSBuild <Target> ,它应该从输出目录中获取所有文件并将它们压缩在一起以进行分发。 问题是,我缺少来自 NuGet 依赖项的所有文件,因为它们不存在!

我怎样才能以一般的(即不是特定于项目的)方式解决这个问题?

更新

这个deps.json文件基本上包含了我想要的所有内容,然后是一些。 只需提取相关信息并在本地NuGet缓存中查找文件即可。 但这将涉及编写一个专门的应用程序并从我的目标中调用它。 在我自己开始写一个之前......有没有这样的东西已经在某个地方了?

我遵循了这个答案,它有点工作。

建议的事情是将以下内容包含到我的 csproj 中:

<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>

我主要担心的是它还会从框架中输出一些其他 DLL(例如System.Memory.dllSystem.Buffers.dll等),这是我没想到的。 但也许这是一件好事。 它们似乎确实是依赖关系,而不是直接依赖关系。 我会看看结果如何。

如果结果没问题,我唯一的愿望就是在项目设置中更突出地显示该指令(作为一个简单的复选框,也许?)这样我就不必在网上寻找它了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM