#.net #.net-core #nuget #msal #nuget-spec
#.net #.net-ядро #nuget #msal #nuget-спецификация
Вопрос:
Я новичок в .Net world и все еще пытаюсь освоиться с этим. У меня есть .Проект Net Core 2.1, и я пытаюсь ссылаться на Microsoft.Идентификация.Клиент.Расширения и Microsoft.Идентификация.Клиентские библиотеки непосредственно в проекте. Я загрузил файлы nupkg из nuget и извлек пакет. Я скопировал библиотеки, присутствующие в lib netcoreapp2.1, в каталог моего проекта. Я добавил следующее в csproj.
<ItemGroup>
<Reference Include="Microsoft.Identity.Client">
<HintPath>Microsoft.Identity.Client.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Identity.Client.Extensions.Msal">
<HintPath>Microsoft.Identity.Client.Extensions.Msal.dll</HintPath>
</Reference>
</ItemGroup>
Но в списке Microsoft есть невыполненная зависимость.Идентификация.Клиент.Расширения, которые не добавлены мной. Приложение все еще компилируется, но ведет себя не так, как ожидалось. Я просмотрел файл .nuspec и заметил, что nuget упоминает зависимости, как показано ниже, и когда проект возвращается к nuget для ссылки на библиотеки, он работает идеально. Это не тот случай, когда я загружаю библиотеки DLL и ссылаюсь на них вручную. Есть ли какой-либо способ добавить зависимости к существующей dll в моем файле .csproj. Проблема в том, что сбоя нет, и приложение просто ведет себя не так, как ожидалось.
<dependencies>
<group targetFramework=".NETCoreApp2.1">
<dependency id="Microsoft.Identity.Client" version="4.15.0" exclude="Build,Analyzers" />
<dependency id="System.Security.Cryptography.ProtectedData" version="4.5.0" exclude="Build,Analyzers" />
</group>
</dependencies>
Я уверен, что механизм nuget где-то извлекает две зависимости
Комментарии:
1. Есть ли конкретная причина, по которой вы вручную добавляете ссылки вместо того, чтобы просто ссылаться на пакеты и позволять nuget работать со ссылками и зависимостями? Кажется, что это много утомительной и подверженной ошибкам работы.
2. У меня есть существующая инфраструктура, которая работает со ссылками на dll. Следовательно, у меня не было другого выбора, кроме как не загружать и использовать DLL. Я понял, что это подвержено ошибкам, как только я вошел в это.