在C#中如何获取项目所用第三方包的源代码?
获取.NET第三方包源代码的实用方法
以下是几种类似Go go mod vendor、Java mvn dependency:copy-dependencies的解决方案,帮你拿到第三方包的源代码:
用NuGet CLI直接下载带源码的包
前提是目标包发布了对应的源代码包(多数主流包都支持),执行以下命令:nuget install <你的包名> -Source https://api.nuget.org/v3/index.json -OutputDirectory ./vendor -IncludeSource其中
-IncludeSource会触发源码下载,-OutputDirectory指定源码存放的目录(比如./vendor),替换<你的包名>为实际依赖包ID即可。修改项目配置,restore时自动拉取源码
在项目的.csproj文件里添加如下配置:<PropertyGroup> <!-- 包含符号源,部分包的源码存在这里 --> <RestoreSources>https://api.nuget.org/v3/index.json;https://nuget.smbsrc.net/</RestoreSources> <!-- 开启源码包下载 --> <RestorePackagesWithSource>true</RestorePackagesWithSource> </PropertyGroup>执行
dotnet restore后,源码会被下载到NuGet默认缓存目录(Windows是%USERPROFILE%\.nuget\packages,Linux/macOS是~/.nuget/packages),你可以手动复制到项目本地目录。用NuGet.Vendor工具一键生成vendor目录
这个第三方工具专门实现类似Go vendor的功能,步骤如下:- 安装工具:
dotnet tool install -g NuGet.Vendor - 进入项目根目录执行:
nuget-vendor
工具会自动识别项目依赖,把对应的包和源码都下载到项目的
vendor目录下。- 安装工具:
内容的提问来源于stack exchange,提问作者Dayananda D R
相关产品推荐
相关产品推荐

