Как я могу получить NUnit2XmlResultWriter.dll в моем проекте, чтобы использовать его? - PullRequest
0 голосов
/ 16 апреля 2019

Я хочу написать этот код C # convert-nunit-3-nunit-2-results-xml-file , но, несмотря на добавленный пакет nuget, мне не хватает dll в моем проекте. Я вижу его в каталоге инструмента кеша пакетов, но в моем проекте его нет. Что я пропускаю?

enter image description here

Мой проект в настоящее время для .Net Core 2.1. Поэтому связана ли моя проблема с этим: Добавить поддержку стандарта net ? Я новичок в .net и пока не понимаю всех различий.

Ответы [ 2 ]

1 голос
/ 16 апреля 2019

Как объяснил Зивкан, пакет представляет собой инструмент. Фактически это расширение другого инструмента, пакета движков NUnit. Движок NUnit знает, как найти и использовать расширение.

NUnit не публикует пакет, который предназначен для использования вашим кодом в качестве библиотеки, потому что тогда мы должны будем поддерживать его как библиотеку в дополнение к его использованию в качестве расширения для NUnit.

Однако лицензия NUnit MIT позволяет вам использовать исходный код, который вы можете найти по адресу https://github.com/nunit/nunit-v2-result-writer

Поскольку код еще не был перенесен на .NET Core, вам придется сделать это самостоятельно.

1 голос
/ 16 апреля 2019

Вы ничего не пропустили.Не все пакеты NuGet являются библиотеками.

NuGet имеет соглашения о том, как файлы должны быть упакованы для использования различных функций.Например, файлы в content или contentFiles копируются в каталог проекта или выводятся в зависимости от того, использует ли проект, использующий пакет, packages.config или PackageReference.Если автор пакета хочет предоставить вам библиотеку, которую вы можете использовать в своем коде, он должен поместить библиотеку в каталог lib в nupkg (технически это может быть в ref, но они не копируются всоздать / опубликовать вывод, они используются только во время сборки).Не удивительно, что каталог tools предназначен для пакетов инструментов.Он часто используется исполнителями модульных тестов или, в данном случае, генератором отчетов.

Итак, поскольку пакет помещает dll в каталог tools, это означает, что автор пакета намеревается, чтобы пакет был инструментомчтобы помочь вам во время разработки, но не в качестве библиотеки для использования в вашем коде.Вы можете попробовать связаться с автором пакета, чтобы узнать, опубликовали ли они другой пакет с той же DLL, на этот раз в каталоге lib, чтобы вы могли использовать его в своем проекте.

В противном случае вам потребуетсянайти решение, которое не полагается на NuGet, который принесет вам эту библиотеку dll.Одним из вариантов является наличие файла packages.config, который извлекает пакет из каталога packages решения, а затем вы используете ссылку на dll на dll.Затем вашему сценарию сборки потребуется сначала восстановить файл packages.config перед сборкой проекта.Другой вариант - проверить в dll свой инструмент управления исходным кодом, если лицензия dll позволяет это, и снова иметь ссылку на dll.

...