Существует много похожих вопросов о проблемах со ссылкой на библиотеку классов .NET Standard из проекта .NET Framework, в которой зависимость пакета NuGet в библиотеке netstandard не передается в приложение netframework, а ошибка Could not load file or assembly
возникает во время выполнения.:
Существует множество источников, например, приведенный ниже, которые указывают, что это можно решить, добавив отсутствующую зависимость в проекте netframework:
Однако это неблагоприятно, потому что я не хочу, чтобы проекты имели прямые ссылки, которые им не нужны;зависимости должны течь естественным образом, поэтому будущие добавленные / удаленные зависимости просто работают.
Другие источники указывают, что это можно решить, добавив <RestoreProjectStyle>PackageReference</RestoreProjectStyle>
и <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
в файл проекта netframework:
Я протестировал оба вышеуказанных исправления с проектами , которые находятся в пределахТо же решение Visual Studio и имело успех, но я предпочитаю второй подход, потому что это решение «поставь и забудь».
Проблема, которую я обнаружил, заключается в том, что я пытаюсь сослаться на библиотеку классов нестандартных классов из проекта netframework в другом решении VS , и я использую подходы <RestoreProjectStyle>PackageReference</RestoreProjectStyle>
и <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
впоследний проект.В моем конкретном случае у меня есть исполняемый проект .NET Framework, который ссылается на библиотеку классов .NET Framework в том же решении, и эта библиотека классов ссылается на библиотеку классов .NET Standard в другом решении.
создал MCVE на GitHub, который демонстрирует это поведение .Я использую VS 2017 v15.9.4.
Кроме добавления пакетов непосредственно в проект netframework, есть ли способ заставить это работать?
(Примечание: этоЗдесь звучит похоже на проблему, но я не использую «щелкнуть один раз»: https://stackoverflow.com/a/47839628/2704659)