Диспетчер пакетов Nuget

тим, у моего решения есть 2 проекта:

Первый называется «MainProject» (проект .NETStandard 2.0).Второй называется «MainProjectTests» (тестовый проект NUnit) с некоторыми модульными тестами для каждого класса в «MainProject».

Первый проект (MainProject) имеет зависимость NuGet, которая называется "dependencyX". Очевидно, что проект «MainProjectTests» имеет ссылку на «MainProject».

Поэтому, когда тестовый прогон запускает тест «MainProjectTests», который вызывает методы из «MainProject» с использованием «dependencyX», я получаюSystem.IO.FileNotFoundException исключение:

System.IO.FileNotFoundException: не удалось загрузить файл или сборку 'dependencyX, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = null' или одна из ее зависимостей.

Почему я получаю это исключение? Когда я добавляю "dependencyX" в "MainProjectTests", все работает нормально, но мне кажется, что это не очень хорошая практика ... Как это решить?

Я использую Visual Studio для Mac Community 7.2 Preview (7.2 build 583)

Спасибо за помощь.

РЕДАКТИРОВАТЬ:

Пробовал ставить варианты:

<RestoreProjectStyle>PackageReference</RestoreProjectStyle>

<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>

в проекте NUnit, но получить тот же результат.

 Bruno Peres14 сент. 2017 г., 16:14
@CodeCaster спасибо за комментарий. Мой тестовый проект не использует напрямуюdependencyX, Вместо этого он вызывает метод из класса внутри проекта, который используетdependencyX, Я не прав? Поэтому я считаю, что тестовый проект не должен знать о существованииdependencyX...
 flchaux07 нояб. 2017 г., 11:59
Копирование dll в тестовую корзину работает, но это странный обходной путь.
 Zastai16 сент. 2017 г., 14:07
Установлен ли MainProject для помещения бинарных файлов dependencyX в выходной каталог сборки? Если нет, почему вы ожидаете, что он будет работать?
 CodeCaster14 сент. 2017 г., 16:03
Почему не кажется хорошей практикой иметь в наличии зависимости, где вы их используете? Где среда выполнения должна взять их вместо этого?
 CodeCaster14 сент. 2017 г., 16:03

Ответы на вопрос(2)

Решение Вопроса

это известная ошибка, связанная с библиотеками .NET Standard (и, возможно, особенно в сочетании с NUnit). Я уже подаласообщение об ошибке здесь что, кажется, подтверждает, что это не предполагаемое поведение. Хотя в течение полугода не было никакого прогресса.

Возможно, следует сообщить об ошибке в репозитории NUnit после подтверждения того, что это происходит только при использовании NUnit.

В настоящее время вам нужно будет ссылаться на все библиотеки, используемые в проекте .NET Standard, а также во всех проектах, ссылающихся на стандарт .NET, как вы делаете сейчас.

 Lex Li14 нояб. 2017 г., 00:35
stackoverflow.com/tags/visual-studio-mac/synonyms Вы можете проголосовать за синонимы?

о которой сообщалось в Microsoft несколько раз, и кажется, что они не сделали много на этом, посмотрите на этоVisual Studio не копирует ссылочные сборки через иерархию ссылок

С другой стороны, по крайней мере с Nuget Packages у вас есть простой способ (добавить один и тот же пакет в несколько проектов в одном решении), используя менеджер пакетов для решения, как вы можете видеть здесьДиспетчер пакетов Nuget.

Ваш ответ на вопрос