找不到nuget文件夹
我找不到一些nuget软件包(VS 2019,asp.net core 2.2)。我发现System.ComponentModels.Annotations在我的.nuget文件夹中找不到,在VS中,它旁边没有像所有其他软件包一样的“展开”箭头: 在my.nuget文件夹中:找不到nuget文件夹,nuget,Nuget,我找不到一些nuget软件包(VS 2019,asp.net core 2.2)。我发现System.ComponentModels.Annotations在我的.nuget文件夹中找不到,在VS中,它旁边没有像所有其他软件包一样的“展开”箭头: 在my.nuget文件夹中: 我已尝试清除我的packages文件夹并重新构建以获取所有包。我已尝试更新包-重新安装。我已经尝试直接安装system.componentmodel.annotations(而不是将其作为依赖项安装)。我的解决方案构建
我已尝试清除我的packages文件夹并重新构建以获取所有包。我已尝试更新包-重新安装。我已经尝试直接安装system.componentmodel.annotations(而不是将其作为依赖项安装)。我的解决方案构建得很好,但我在硬盘上的任何地方都找不到这个包。我还注意到,Microsoft.AspNetCore.Razor.Design表现出完全相同的行为。当NuGet还原一个项目,该项目使用
PackageReference
作为包(所有SDK样式的项目,并选择加入传统项目),它会写入obj\project.assets.json
文件,这就是MSBuild用来完成其余生成的内容
查看我的测试项目的packageFolders
部分,我看到以下内容:
"packageFolders": {
"c:\\git\\test\\globalPackages\\": {},
"C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder": {}
},
"System.ComponentModel.Annotations/4.5.0": {
"type": "package",
"compile": {
"ref/netcoreapp2.0/_._": {}
},
"runtime": {
"lib/netcoreapp2.0/_._": {}
}
},
请注意,我有一个nuget.config
,它将我的全局包文件夹从我的用户配置文件全局包文件夹重定向出去,因此我创建的临时/假包不会污染我的真实开发环境。仅供参考,以防您想知道为什么没有看到c:\users\zivkan\.nuget\packages
但是请注意,有两个包文件夹
在project.assets.json
的libraries
部分中查找System.comontModel.Annotations
,我看到:
"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\*
目录中的一个程序集。选择您认为与您的Powershell版本兼容的TFM
至于解决方案资源管理器没有扩展包的技巧的原因,请在project.assets.json
的targets
部分找到该包,您将看到以下内容:
"packageFolders": {
"c:\\git\\test\\globalPackages\\": {},
"C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder": {}
},
"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
,则会发现无法加载的仅元数据引用程序集。但是我在上面给出了如何查找包目录的说明,您可以在lib\*
目录之一中查找可加载的dll,以尝试在Powershell中加载。是否无法找到导致错误的包?您试图解决的问题是什么?我正在尝试运行运行powershell脚本的gulp脚本。此脚本加载在某些类上运行类序列化程序所需的类型。因此,我需要加载DLL及其依赖项。我正试图从他们的软件包中加载nuget DLL,因为我知道它们在我的桌面上和我的CI/CD管道中的位置。但是,我遇到了一些问题,因为我找不到这些DLL