【问题标题】:Creating NuGet package with reference to a non-NuGet reference参考非 NuGet 引用创建 NuGet 包
【发布时间】:2012-12-19 04:33:39
【问题描述】:

我正在创建一个将 2 个 dll 构建到 NuGet 包中的类库。它有一些对当前没有可供引用的 NuGet 包的 dll 的引用。

我应该如何使我的 NuGet 包依赖于那些当前无法通过 NuGet 获得的 dll?

如果我也将它们捆绑在一起,如果一个已经引用这些 dll 的项目拉下我的 NuGet 包,该引用会发生什么情况?

我是否应该为每个 dll 引用创建一个 NuGet 包并让我的 NuGet 包依赖这些?

【问题讨论】:

    标签: nuget nuget-package


    【解决方案1】:

    您可以将 DLL 捆绑到您的 NuGet 包中,而不会产生不良影响。在某个/libs(或其他)文件夹中已经拥有这些DLL 的项目将继续从那里引用它们。 NuGet 包中的程序集将引用被拉入/packages 的捆绑 DLL。

    在您的 nuspec 文件中,使用 <file> 元素包含内部 DLL,如下所示:

    <package>
      <metadata>
        ...
      </metadata>
      <files>
       <file src="PATH_TO_BIN\DependencyOne.dll" target="mylibs" />
       <file src="PATH_TO_BIN\DependencyTwo.dll" target="mylibs" />
      </files>
    </packages>
    

    这会在拉取 NuGet 包时产生以下文件结构:

    PATH_TO_PROJECT/packages/YOUR_NUGET_PACKAGE/mylibs/DependencyOne.dll
    PATH_TO_PROJECT/packages/YOUR_NUGET_PACKAGE/mylibs/DependencyTwo.dll
    

    target 属性可以指定相对于包根目录的任意路径。

    【讨论】:

      猜你喜欢
      • 2017-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多