如何让GitHub构建时可用本地私有DevExpress.Blazor NuGet包?
解决方案:把DevExpress.Blazor DLL嵌入GitHub项目实现构建可用
方案一:直接添加本地DLL引用
这是最直接省事的办法,不用折腾NuGet包管理,直接把DLL塞进项目:
- 从本地DevExpress安装目录找对应的DLL,一般路径是
C:\Program Files (x86)\DevExpress 你的版本号\Components\Bin\Blazor,把核心DLL和依赖的附属DLL(比如本地化资源文件)都找出来 - 在GitHub项目里新建一个文件夹,比如
Libs/DevExpress.Blazor,把这些DLL上传进去 - 打开你的Blazor项目,右键选择「添加」→「引用」→「浏览」,选中刚才上传的DLL添加引用
- 检查项目文件(.csproj)里的引用路径是不是相对路径,示例:
<Reference Include="DevExpress.Blazor"> <HintPath>..\Libs\DevExpress.Blazor\DevExpress.Blazor.dll</HintPath> </Reference> - 把这些改动提交到GitHub,GitHub Actions构建时会自动识别本地引用,无需额外配置NuGet源
方案二:在项目内搭建本地NuGet源
要是还想保留NuGet包的管理方式,就在项目里建个本地源:
- 从本地DevExpress安装目录导出.nupkg包文件,通常在
C:\Program Files (x86)\DevExpress 你的版本号\Components\Packages文件夹里 - 在GitHub项目里新建
LocalNuGet文件夹,把导出的.nupkg文件上传进去 - 在项目根目录创建
nuget.config文件,配置本地源:<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <clear /> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" /> <add key="LocalDevExpress" value="./LocalNuGet" /> </packageSources> </configuration> - 确保项目的PackageReference引用了正确的包版本,把所有文件提交到GitHub,构建时会自动读取本地源的包
可选:简化GitHub私有包推送流程
要是之后想改用GitHub私有包,按下面步骤操作:
- 生成GitHub经典个人访问令牌(PAT),勾选
write:packages和read:packages权限 - 在本地命令行执行推送命令(替换成你的信息):
nuget push "DevExpress.Blazor.你的版本号.nupkg" --source "https://nuget.pkg.github.com/你的GitHub用户名/index.json" --api-key 你的PAT令牌 - 在项目的
nuget.config中添加GitHub私有源和凭据配置:<packageSources> <add key="GitHubPrivate" value="https://nuget.pkg.github.com/你的GitHub用户名/index.json" /> </packageSources> <packageSourceCredentials> <GitHubPrivate> <add key="Username" value="你的GitHub用户名" /> <add key="ClearTextPassword" value="你的PAT令牌" /> </GitHubPrivate> </packageSourceCredentials> - 注意:GitHub Actions构建时,别把PAT硬编码到文件里,存成仓库机密,在构建脚本里通过环境变量注入到nuget.config即可
内容的提问来源于stack exchange,提问作者David Thielen
相关产品推荐
相关产品推荐

