【发布时间】:2017-05-16 07:45:13
【问题描述】:
我已使用 Visual Studio 2017 将我的一些类库转换为 .NET Standard。
这很简单,添加一个 .NET Standard 类库项目来代替原始项目,然后在其中添加所有文件。 .csproj 文件现在甚至看起来像一个带有包信息等的 nuspec 文件。在项目选项中,我检查了“在构建时生成 NuGet 包”的复选框。轻松愉快。
但是,我的类库的 .NET Framework 使用者现在获得了大量的依赖项,我计算了至少 20 个其他添加的 nuget 包,其中大部分对我的库来说完全没有必要。换句话说,“easy peasy too 容易吗?”
这只是我使用 .NET Standard 作为 only 构建输出的副产品,我也应该添加回 .NET Framework 库吗?
以下包将被添加到使用我的库的项目中,即使它们完全没有必要:
- System.Security.Cryptography.*
- System.Xml.*
- System.IO.*
等等。有很多包被添加。我的库做了“美化”的数组分析,根本不需要太多。
Visual Studio 项目配置为面向 .NET Standard 1.0,唯一可见的参考是“NETStandardLibrary”,所以这并不是我自己添加的所有这些。
我检查了包裹,但它似乎也没有列出所有这些。
我可以只添加我需要的包并且仍然以 .NET Standard 1.0 为目标吗?
我的类库在这里是开源的:https://github.com/lassevk/DiffLib
nuget 包在这里:http://www.nuget.org/packages/difflib/2017.4.24.2347
【问题讨论】:
-
我对生成 nuget 包的简单程度感到特别满意,我担心如果我返回多个构建输出,我需要返回维护 nuspec 并自己构建系统现在可以让 Visual Studio 处理它。
-
您看不到的是您实际使用的软件包完成工作所需的软件包。 .NETCore 团队上周承认,像那样拆分 corefx 是一个错误,导致的问题比解决的问题多得多。随着 v2.0 的发布,它将很快得到修复,希望在此之后稳定下来,这将很快成为一个糟糕的记忆。
-
好的,所以从platform support matrix 来看,我可能需要同时包含 2.0 和 1.0 作为可能的目标,以至少帮助人们使用更新的运行时。我不愿意只升级到 2.0 并放弃 1.6,因为矩阵包含 1.0 支持的更多框架版本。这似乎是可行的,因为我知道我可以通过手动“破解”项目文件来列出多个标准版本目标。谢谢。
-
虽然如果我可以说我只需要其中的 1 或 2 个包,那将包括更多,因为它们的依赖关系也很好,但我想这样的事情只会被修复通过进入 2.0,1.x 在这方面不会变得更好,这就是你的意思吗?如果是这样,请发布答案,以便我接受。
标签: nuget .net-standard