如何将NUnit2XmlResultWriter.dll导入我的项目中以使用它?

问题描述 投票:0回答:2

我想写一下C#代码convert-nunit-3-nunit-2-results-xml-file,但是尽管增加了nuget包,但我错过了我的项目中的dll。我在包缓存的工具目录中看到它,但在我的项目中遗漏了它。我有什么看法?

enter image description here

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

c# visual-studio dll nuget nunit
2个回答
1
投票

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

NUnit不会发布一个打算供代码用作库的包,因为除了它用作NUnit的扩展之外,我们还必须支持它作为库。

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

由于代码尚未移植到.NET Core,因此您必须自己执行此操作。


1
投票

你没有忽视任何事情。并非所有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引用它。

© www.soinside.com 2019 - 2024. All rights reserved.