【发布时间】:2020-04-10 03:23:37
【问题描述】:
我是创建 NuGet 包的新手,只玩了几天,就目前而言,我已经成功地在 .NET Frameworks 3.5 到 4.8 上测试了我的包。
顺便说一下,这是包:https://www.nuget.org/packages/ExcelFromList/1.0.4
我的包依赖于 EPPlus,这是我用作引擎的。如果您搜索 EPPlus,您会看到它声明它可以安装在 .NET Framework、.NET Standard 和 .NET Core 上,我已经对此进行了测试,并且是正确的。
所以我不知道如何解决这个问题。
这是关于我的项目的信息:
- 项目是 .NET 3.5
- 使用 nuget.exe 创建 NuGet 包
- 使用 .nuspec 文件创建包(nuget pack <.nuspec>)
- 只有安装在项目中的 NuGet 包是 EPPLus
这是我的 .nuspec 文件:
<?xml version="1.0" encoding="utf-8" ?>
<package>
<metadata>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<id>ExcelFromList</id>
<version>1.0.4</version>
<title>ExcelFromList</title>
<description>Straightforward and easy way to create stylized excel workbooks from lists. Add an image, title, subtitles and overal cell styles/formats. Uses the EPPlus engine.</description>
<releaseNotes>Succesfully tested on .NET frameworks from 3.5 through 4.8</releaseNotes>
<authors>Raul Marquez</authors>
<owners>Raul Marquez</owners>
<copyright>Copyright 2020 Raul Marquez</copyright>
<projectUrl>https://github.com/RaulMarquezInclan/ExcelFromList</projectUrl>
<license type="expression">GPL-3.0-only</license>
<tags>excel list listtoexcel</tags>
<dependencies>
<dependency id="EPPlus" version="5.1.0" />
</dependencies>
</metadata>
<files>
<file src="bin\Debug\net35\ExcelFromList.dll" target="lib\net35" />
<file src="bin\Debug\net35\ExcelFromList.xml" target="lib\net35" />
</files>
</package>
使用该配置构建包会引发以下警告:
警告:NU5128:在依赖项中声明了一些目标框架 nuspec 组和 lib/ref 文件夹没有完全匹配 在另一个位置。请参阅以下操作列表: - 为 .NETFramework3.5 添加一个依赖组到 nuspec
但是,正如我之前所说,它仍然可以在不同的 .NET Framework 版本中正常安装和运行。
当尝试在 .NET Standard 或 .NET Core 上安装它时,它会正确安装我的 dll,但不会安装 EPPlus,这是我的包的依赖项。在 .NET Standard 方面,我只需要手动安装它,一切都很好,在 .NET Core 方面,执行相同操作后它告诉我可执行文件无法在项目中运行。
所以,我很困惑的是如何使它们也可用于 .NET Standard 和 .NET Core,通过搜索我已经得到了关于首先将其转换为 .NET 标准的提示,或者有三个不同的 dll,每个对应不同的技术,并在 .nuspec 文件的文件部分等中指定它们。
谁能指点我正确的方向?
编辑:顺便说一下,在查看 EPPlus 包时,我们看到的是:
谢谢。
【问题讨论】:
-
不知道。我对 UWP 库包也有同样的想法。在几次尝试修复它后我忽略了它,因为影响似乎很小。同样,如果您将其转换为 .net 标准,我怀疑您是否会遇到同样的问题,但它本身可能不值得付出努力。使用 .net 标准制作 nuget 包非常容易。
-
我认为如果不对基于 .net 框架的项目文件进行任何更改,您将无法正常工作。我遇到过这篇文章medium.com/@SicknoteSteve/…。这可能与您面临的问题类似,因为您需要让您的库了解 .net 标准/.Net 核心
标签: nuget-package compatibility