Когда NuGet восстанавливает проект, который использует PackageReference
для пакетов (все проекты в стиле SDK и согласие на традиционные проекты), он записывает файл obj\project.assets.json
, который MSBuild использует для завершения остальных операций. строить.
Глядя на раздел packageFolders
моего тестового проекта, я вижу это:
"packageFolders": {
"c:\\git\\test\\globalPackages\\": {},
"C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder": {}
},
обратите внимание, что у меня есть nuget.config
, который перенаправляет мою папку глобальных пакетов из папки глобальных пакетов моего профиля пользователя, поэтому временные / поддельные пакеты, которые я создаю, не загрязняют мою реальную среду разработки. К вашему сведению, если вам интересно, почему вы не видите c:\users\zivkan\.nuget\packages
.
Но обратите внимание, что есть две папки с пакетами.
Ищите System.ComonentModel.Annotations
в секции libraries
в project.assets.json
, я вижу:
"System.ComponentModel.Annotations/4.5.0": {
"sha512": "UxYQ3FGUOtzJ7LfSdnYSFd7+oEv6M8NgUatatIN2HxNtDdlcvFAf+VIq4Of9cDMJEJC0aSRv/x898RYhB4Yppg==",
"type": "package",
"path": "system.componentmodel.annotations/4.5.0",
"files": [
// list of every file in package
]
},
см. Путь говорит system.componentmodel.annotations/4.5.0
, что означает, что он может быть в одном или обоих из c:\git\test\globalPackages\system.componentmodel.annotations\4.5.0
и / или C:\Program Files\dotnet\sdk\NuGetFallbackFolder\system.componentmodel.annotations\4.5.0
.
В случае использования при попытке загрузить его в Powershell, вы можете попробовать загрузить одну из сборок в каталог lib\*
. Выберите TFM, который, по вашему мнению, совместим с вашей версией Powershell.
Что касается причины, по которой Solution Explorer не имеет возможностей для расширения пакета, найдите пакет в разделе targets
project.assets.json
, и вы увидите следующее:
"System.ComponentModel.Annotations/4.5.0": {
"type": "package",
"compile": {
"ref/netcoreapp2.0/_._": {}
},
"runtime": {
"lib/netcoreapp2.0/_._": {}
}
},
Другими словами, пакет не содержит никаких активов или дополнительных зависимостей NuGet. Поэтому нечего расширять в обозревателе решений.
В данном конкретном случае это связано с тем, что netcoreapp2.0
имеет встроенную сборку во время выполнения, а пакет Microsoft.NETCore.App
содержит метаданные времени компиляции. Вот почему я спросил, почему вы ищете пакет. Если вы используете project.assets.json
, чтобы найти точное значение System.ComponentModel.Annotations.dll
, которое использует сборка во время компиляции, вы найдете справочную сборку только для метаданных, которую нельзя загрузить. Но выше я привел примеры того, как найти каталог пакета, и вы можете найти загружаемую dll в одном из lib\*
каталогов, чтобы попытаться загрузить его в Powershell.