【问题标题】:install package globally in Net 5.0在 Net 5.0 中全局安装包
【发布时间】:2021-07-20 17:11:40
【问题描述】:

如何在本地(或远程)计算机的 Net 5.0 运行时安装包,以便我创建的所有项目都可以使用,无需使用 nuget 明确添加到每个项目

理想情况下,以这种方式安装的每个包都应该是可访问的,只需声明它的命名空间即可。 示例:

  • 包是 Microsoft.Extensions.Configuration.Json
  • 这样安装包
  • 创建一个控制台 .net 应用程序,我添加 nuget 包
  • 使用仅声明“使用 Microsoft.Extensions.Configuration”的包类

希望有办法做到这一点

【问题讨论】:

  • 为什么不创建own template
  • 我认为不存在这样的功能,这是一件好事:它会使 .NET 项目不可移植,因为它们可能依赖于仅在本地可用的包。这种可移植性实际上是 nuget 的一大优势(而不是仅仅引用本地安装的库的 DLL,就像你在黑暗的过去所做的那样)。
  • csproj 文件的全部意义在于告诉构建系统如何编译您的代码以及需要哪些依赖项。假设您将代码提交到源代码控制并且其他人下载了它,他们的系统将不再知道需要哪些引用。

标签: c#


【解决方案1】:

这是做不到的。当不同的项目需要这些包的不同版本时(例如当您将来启动一个新的 .Net 6 项目并且所有旧项目都需要 .Net 5 程序集时),它很快就会变得不可用。

然而,您可以做的是使用您的默认软件包列表创建自己的元软件包,这样您只需将一个软件包安装到您的新项目中,然后将包含您想要的所有软件包。

How to create meta package (package of all packages) like Microsoft.AspNetCore.All in nuget?

【讨论】:

    猜你喜欢
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 2016-01-06
    • 1970-01-01
    • 2021-04-13
    • 2017-11-05
    • 2014-08-29
    相关资源
    最近更新 更多