【问题标题】:How do i get the NUnit2XmlResultWriter.dll into my project to use it?如何将 NUnit2XmlResultWriter.dll 放入我的项目中以使用它?
【发布时间】:2019-09-06 05:29:55
【问题描述】:

我想编写 C# 代码 convert-nunit-3-nunit-2-results-xml-file,但尽管添加了 nuget 包,但我的项目中缺少 dll。 我在包缓存的工具目录中看到它,但在我的项目中缺少它。 我忽略了什么?

我的项目目前是 .Net Core 2.1。因此,我的问题是否与此有关:Add support for net standard? 我是 .net 新手,目前还不了解所有差异。

【问题讨论】:

  • 嗨 Sebastian,我同意 Charlie 的想法,这个包还没有支持 .NET Core,请重定向到这个:github.com/nunit/nunit-v2-result-writer/issues 并推荐作者添加这个功能,谢谢你的理解。
  • 由于我来自 Java,我对 .Net 还是很陌生。 @SaraLiu-MSFT 这个问题还不够Add support for net standard ?还需要Core吗?由于此软件包不打算用作库,因此我不确定如何包含它。创建我自己的本地 nuget 包?

标签: c# visual-studio dll nuget nunit


【解决方案1】:

正如 zivkan 解释的那样,包是一个工具。事实上,它是对另一个工具 NUnit 引擎包的扩展。 NUnit 引擎知道如何查找和使用扩展。

NUnit 确实发布一个供您的代码作为库使用的包,因为除了将其用作 NUnit 的扩展之外,我们还必须将其作为库来支持。

但是,NUnit 的 MIT 许可证允许您使用源代码,您可以在 https://github.com/nunit/nunit-v2-result-writer 找到它

由于代码尚未移植到 .NET Core,您必须自己完成。

【讨论】:

  • 感谢您的详细信息,我希望得到您的答复。 :-) 我尝试这个的原因是我们的 TFS 2017 不支持 Nunit3 格式的 xml 测试结果。我希望今年能升级到 2018 年。我的实际解决方法是使用带有 logger:trx 的 dotnet 测试。由于港口对我来说工作量太大,所以我会坚持下去。我希望有一个快速的解决方案。
  • 虽然 .NET Core 支持可能也很有用,但当库由用户代码调用或作为 NUnit 引擎的 .NET Standard 构建的扩展时,对 .NET Standard 的支持就足够了。
【解决方案2】:

你没有忽略任何事情。并非所有 NuGet 包都是库。

NuGet 有关于必须如何打包文件才能使用各种功能的约定。例如,contentcontentFiles 中的文件将被复制到项目目录或构建输出,这取决于使用包的项目是使用 packages.config 还是 PackageReference。如果包作者想给你一个你可以在你的代码中使用的库,他们必须把这个库放在 nupkg 的 lib 目录中(技术上它可以在 ref 中,但那些不会被复制到构建/发布输出,它们仅在构建时使用)。不出所料,tools 目录用于工具包。它经常被单元测试运行者使用,或者在这种情况下,是一个报告生成器。

因此,由于包将 dll 放在 tools 目录中,这意味着包作者打算将包作为在开发过程中为您提供帮助的工具,而不是作为供您在代码中使用的库。您可以尝试联系包作者,看看他们是否发布了具有相同 dll 的另一个包,这次是在 lib 目录中,以便您可以在项目中使用它。

否则,您将需要找到一个不依赖 NuGet 将这个 dll 作为库提供给您的解决方案。一种选择是有一个packages.config 文件,该文件在解决方案packages 目录中提取包,然后使用对dll 的dll 引用。然后,您的构建脚本需要在构建项目之前首先恢复 packages.config 文件。另一种选择是将 dll 检入到您的源代码控制管理工具中,如果 dll 的许可证允许,并且再次获得对它的 dll 引用。

【讨论】:

  • 谢谢,我担心这样的事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-15
  • 1970-01-01
相关资源
最近更新 更多