繁体   English   中英

你可以为一个组件创建一个 NuGet package

[英]Can you create a NuGet package for just an assembly

背景:我正在使用 Visual Studio 2019 专业版 16.11.15 和 NuGet Package Manager 5.11。 为我提供了一些第 3 方组件,用于我的 .NET 标准 2.0 class 库。 这些 dll 由安装程序本地安装在我的机器上。 我通过“添加项目参考”将它们添加到我的项目中。 这是他们工作的屏幕截图。 在此处输入图像描述 在此处输入图像描述

目标:为我的 .NET Standard 2.0 ZA2F2ED4F8EBC2CBB14C21A29DZ 库创建一个 NuGet package,供我们的开发团队内部使用。 它应该将这些第 3 方 dll 封装为其中的一部分。 但我总是陷入死胡同。

重要提示: Xceed 不在 nuget.org 上托管这些 .NET 标准装配版本,故意让我的生活变得困难似乎......

我努力了:

  1. 在项目属性的 Package 部分中使用“在构建时生成 NuGet package”。 此选项不附加第 3 方程序集。 这包括将“复制本地”选项设置为“是”。

  2. 按照这个答案,通过 NuGet Package explorer 将这些第 3 方 dll 添加到他们自己的 NuGet 包中。 我尝试了几种不同风格的文件夹结构:

    1. 将 dll 放在根目录在此处输入图像描述
    2. 将 dll 放在“lib”文件夹中在此处输入图像描述
    3. 将 dll 放在“lib/netstandard2.0”文件夹中在此处输入图像描述

将 NuGet 包添加到我的项目时,这些选项都不起作用。 对程序集命名空间的引用未在代码中解析。 在此处输入图像描述 在此处输入图像描述

以前有没有人成功地做这样的事情?

事实证明,我遇到了 NuGet 软件包在更新时不刷新的问题。 我按照这个答案的第一部分来解决这个问题。

在 NuGet package 中使用文件夹结构“lib/”时,我遇到了以下警告:

Warning NU1701  Package 'Xceed.Document.NETStandard 2.3.2' was restored using 
'.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, 
.NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, 
.NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8' 
instead of the project target framework '.NETStandard,Version=v2.0'. 
This package may not be fully compatible with your project.

一旦我更新为在 NuGet package 中使用“lib/netstandard2.0/”,我就能够成功地将 NuGet 包添加到我的库并编译。 巨大的成功!

暂无
暂无

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

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