Из связанных документов:
ExcludeAssets:
Эти ресурсы не будут использованы
время выполнения:
Содержимое папки lib и runtimes и контролирует, будут ли эти сборки скопированы в выходной каталог сборки
, поэтому ExcludeAssets="runtime"
явно означает «не копировать dll». Я бы предложил исключить любое использование ExcludeAssets
и PrivateAssets
и позволить NuGet использовать его значения по умолчанию. Если вам не нужно поведение NuGet по умолчанию, начните использовать эти ключевые слова.
Однако, есть и другая вещь. Вы сказали, что ваш тестовый проект не в стиле SDK. Можно настроить таргетинг на. NET Framework из проекта в стиле SDK, но, к сожалению, шаблоны Visual Studio называют их «. NET Core» или «. NET Standard», поэтому люди ошибочно полагают, что не могут ориентироваться. NET Framework. В любом случае, хотя пакеты являются транзитивными для проектов, использующих PackageReference, проекты в стиле SDK всегда являются PackageReference, даже если на пакеты не ссылаются. или явно установите для свойства MSBuild RestoreProjectStyle
значение PackageReference
. В противном случае NuGet будет искать файл packages.config, а если он не найден, NuGet считает, что проект вообще не использует NuGet.
Хотя он Теперь мне приходит в голову, что ваш тестовый проект почти наверняка содержит ссылки на пакеты, по крайней мере, саму тестовую среду. Если эти ссылки находятся через packages.config, это известная несовместимость. packages.config проекты, имеющие ссылки на проекты PackageReference проектов d o не полностью работает должным образом. Есть лучшая совместимость с другой стороны, или альтернативно перенести тестовый проект в PackageReference. Честно говоря, я бы настоятельно рекомендовал перенести все возможные проекты в стиль SDK, даже если вы продолжаете ориентироваться на. NET Framework. Это будущее. NET и инструменты работают лучше. Меньше этих маленьких ошибок.
Если тестовый проект уже использует PackageReference, то проблема заключается только в том, что ExcludeAssets="runtime"
применяется транзитивно, и, удаляя его из вашего ссылочного проекта, он автоматически переходит к тестовый проект.