Резюме
Требуемый Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll не копируется в каталог bin моего проекта.
Подробности
У меня есть следующие
- проект класса под названием abc.settings практически без ссылок, кроме стандартного.
- проект класса abc.settings.extensions.keyvault, который является библиотекой расширений для abc.settings и имеет nuget KeyVault плюс nuget Microsoft.IndentityModels.Clients.ActiveDirectory, который является зависимостью для KeyVault (среди прочего)
- проект под названием abc.login, который имеет ссылку как на abc.settings, так и на abc.extensions.keyvault
Приложение abc.login работает нормально, без ошибок, но когда я запускаю его, я получаю агрегированное исключение времени выполнения, которое сводится к невозможности загрузить модуль Microsoft.IdentityModel.Clients. ActiveDirectory.Platform < / possible.dll
Когда я смотрю в папку bin abc.settings.extensions.keyvault, Microsoft.IdentityModel.Clients. ActiveDirectory.Platform .dll присутствует вместе с Microsoft.IdentityModel.Clients. ActiveDirectory strong> .dll, как и ожидалось.
Когда я смотрю в abc.login \ bin \ x64, я вижу Microsoft.IdentityModel.Clients. ActiveDirectory.dll, но не Microsoft.IdentityModel.Clients. ActiveDirectory.Platform. dll
Вещи, которые я пробовал
- Убедитесь, что copy local верна для обоих этих файлов.
- Гарантированная конкретная версия установлена одинаково для обеих этих dll (это так, и для них было установлено значение true)
- Переустановил nugets
- установил ADAL nuget в проекте abc.login - это заставляет приложение работать ... но его следовало скопировать, потому что на abc.extensions.keyvaul была ссылка.
- Я проверил этот SO, но не могу понять, как это наполовину работает (одна dll копируется, другая - нет). Этот пост подразумевает, что ссылки на DLL этого проекта, на который есть ссылка, никогда не должны работать.
Есть предложения о том, почему или где еще исследовать?
Спасибо.