Разница в обработке nugets с помощью пакета dotnet add .. и добавления nugets с помощью пользовательского интерфейса Visual Studio
Мне нужно использовать родной
c
библиотеки в моей библиотеке (которая поддерживает несколько
Core
TF
s и
.net framework
), который публикуется через nuget. Я настроил его через
.csproj
файл и
runtimes
папка. Но я заметил, что когда я использую свой NuGet через
dotnet add package ..
в некоторых случаях собственные библиотеки не копируются в ожидаемую папку после использования, однако когда я использую
VS
UI
Nuget package manager
->Manage Nuget Packages for Solution
, все файлы помещаются в правильные места.
Итак, я предполагаю, что
Nuget package manager
делает больше шагов, чем просто звонок
dotnet add package ..
, но неясно, что именно происходит, любая помощь будет оценена по достоинству.
1 ответ
Собственно,
dotnet add package
имеет тот же эффект, что и пользовательский интерфейс диспетчера пакетов Nuget в VS IDE. Они просто устанавливают пакет Nuget в ваш проект, и нет никакой разницы. Никаких дополнительных операций не будет. Например, добавить какой-нибудь xml-узел в
Так что я думаю, что в вашем проекте что-то не так.
Ознакомьтесь с советами по устранению проблемы:
1) сначала очистите кеши nuget или просто удалите все файлы кеша в
C:\Users\xxx(current user)\.nuget\packages
.
2) А если
runtimes
папка не существует в вашем проекте, я думаю, что она контролируется
dependency assets
. подобно
ExcludeAssets=runtime or native
. Это предотвратит функцию
runtimes
папка. См. Этот официальный документ.
Поэтому после завершения установки пакета nuget вы должны проверить свой
csproj
файл и убедитесь, что нет таких
<ExcludeAssets>runtime;native</ExcludeAssets>
в узле PackageReference.
Если есть какой-либо этот узел, удалите его.
3) удалить
bin
и
obj
папка. Затем перестройте свой проект, чтобы снова протестировать. Или, если вы используете командную строку dotnet, вы должны дополнительно добавить
dotnet build
команда. На моей стороне я бегу
dotnet build -p:platform=xxx;Configuration=Release
.