【问题标题】:Reference DLL with NuGet dependencies使用 NuGet 依赖项引用 DLL
【发布时间】:2018-12-10 10:43:39
【问题描述】:

假设我将一个名为 B 的项目构建为 B.dll。项目 B 使用多个 NuGet 包。 B.dll在另一个项目A中被引用,如何自动将引用的NuGet依赖添加到项目A中? 我不想运行 NuGet 服务器。

【问题讨论】:

  • 为什么需要添加引用程序集?因为 B.dll 包括 nuget 程序集 A.dll 还包括该程序集
  • 你说你不想运行 NuGet 服务器。这是否意味着其中一些是您自己的本地 NuGet 包?
  • 因为我还需要访问 B.dll 中的这些程序集。
  • @John,不,我不从 DLL 创建 nupkg 文件。我只构建 DLL。
  • 如果他们在同一个解决方案中,只需将其作为项目参考。构建系统会自动复制 B 的所有输出,其中包括 nuget dll。如果不在同一个解决方案中,那么您可以使用本地文件夹或网络共享作为 nuget 提要,而无需设置一些服务器软件(尽管有一些易于设置的 nuget 服务器)

标签: c# visual-studio nuget nuget-package


【解决方案1】:

如何将引用的 NuGet 依赖项自动添加到项目 A?我不想运行 NuGet 服务器。

这取决于你想在哪里为项目 A 添加这些 NuGet 依赖项,如果你将它们添加到项目 As output, you can just use a copy command line in the build event to copy those dependencies to the project As 的输出中,比如:

copy /Y "$(TargetDir)*.dll" "$(SolutionDir)\...\bin\...\"

如果你想自动将这些依赖添加到项目A的References节点,这几乎是不可能的。如果要自动执行此操作,则必须通过 NuGet CLI 执行此操作。由于在 NuGet CLI 上安装包不会修改项目的引用,所以我们无法自动操作安装包来更新项目的引用。

查看this thread了解更多详情。

因此,如果您想完全自动化将引用的 NuGet 依赖项添加到项目 A,似乎不太可能。作为一种解决方法,您可以将项目 B 的 \packages 文件夹的路径设置为 nuget 源,然后您可以使用 nuget 包管理 UI 将这些 nuget 包添加到项目 A 中,这样您就不需要运行 nuget 服务器了。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多