解决 Visual Studio 依赖关系

我正在解析project.assets.jsonC# 项目中的文件以检索项目的依赖项(我将其作为从项目文件中提取文档信息的项目的一部分执行此操作)。


我在网上找不到太多文档project.assets.json。它似乎有许多部分。


这是摘录:


{

    "version": 3,

    "targets": {

        "Microsoft.IdentityModel.JsonWebTokens/5.3.0": {

            "type": "package",

            "dependencies": {

                "Microsoft.IdentityModel.Tokens": "5.3.0",

                "Newtonsoft.Json": "10.0.1"

            },

            "compile": {

                "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll": {}

            },

            "runtime": {

                "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll": {}

            }

        },

    },

    "libraries": {

        "Microsoft.IdentityModel.JsonWebTokens/5.3.0": {

            "sha512": "GmiwCJPEe+V8+2GO3kD8K0IeqNHlTL0xZcHePIjyJveRn7OderxdT32aCZeJZEvz5w2Jlyag3zdyu1zkdTJo2A==",

            "type": "package",

            "path": "microsoft.identitymodel.jsonwebtokens/5.3.0",

            ]

        },

    }

}

从概念上讲,我的解析器查看目标部分并提取项目引用的 DLL 的路径。对于包,该路径相对于本地 nuget 包存储库(通常为C:\Users\<username>\.nuget\packages)。


但我遇到过一些情况 - 提取就是其中之一 - 指定的 DLL ( Microsoft.IdentityModel.JsonWebTokens/5.3.0/lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll) 在本地 nuget 存储库中不存在。事实上,库部分显示了存储库路径 ( Microsoft.IdentityModel.JsonWebTokens/5.3.0),该路径在存储库文件夹中不存在(甚至没有Microsoft.IdentityModel.JsonWebTokens文件夹)。


然而,具有“损坏”参考的项目构建时没有任何错误,并且运行正常。


我很感激其他人可能对如何解决这些“损坏的”存储库路径有任何见解。如果有人知道这方面的在线文档,project.assets.json那就太好了。


森林海
浏览 174回答 1
1回答

慕标5832272

查找文件packageFolders的部分project.assets.json。这就是我所拥有的:&nbsp; "packageFolders": {&nbsp; &nbsp; "C:\\Users\\zivkan\\.nuget\\packages\\": {},&nbsp; &nbsp; "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder": {}&nbsp; },Microsoft.IdentityModel.JsonWebTokens听起来很像 ASP.NET Core 使用的东西,因此 .NET Core SDK NuGetFallbackFolder 听起来很可能是它的位置。通过使用 json 文件中列出的包文件夹,如果在将其全局包文件夹重定向到远离默认用户配置文件位置的项目上使用,您的程序也会更加健壮。
打开App,查看更多内容
随时随地看视频慕课网APP