.NET 中 .deps.json 文件的用途以及我可以避免它吗?

Mdd*_*d M 6 .net c# visual-studio

最近,我们开始迁移到 .NET 5/6,以充分利用新的 C# 版本以及其他原因。我们使用 MSI 安装程序制作 WPF 应用程序进行分发。

查看我们的一个项目,我注意到我们可能需要将一些新文件添加到安装程序中。特别是,我注意到输出中添加了 .deps.json 文件。我的问题是:这对于任何 .NET exe 应用程序的运行都是绝对必要的吗?

在我看来,最终用户将只有运行时,而没有 Nuget 来安装任何缺少的库。所有必需的 dll(来自引用的项目或包)都包含在输出文件夹中,正如 .NET Framework 中所期望的那样,因此我们肯定不需要 deps.json 文件只是为了告诉 .NET 运行时 dll 的位置?

有什么方法可以避免需要 .deps.json 文件?在使用 .NET 5/6 创作 MSI 时,我们还应该注意其他任何更改吗?

Art*_*tur 3

该文件不仅描述了您的依赖包,还有助于解决依赖地狱。在 .Net Framework 中,您有一个app.config文件assemblyBinding告诉您要加载哪个版本的依赖项。在 .Net 中.deps.json,这行得通吗?
您可以在此处找到更多信息:深入了解 .NET Core 原语:deps.json、runtimeconfig.json 和 dll's

  • 这似乎是应该刚刚包含在编译的 exe 中的数据类型。它在最终版本中成为外部的、人类可编辑/可读的文件是否有原因?最终用户不会打开该文件并管理其依赖项,不是吗? (7认同)