如何将指定GitHub仓库发布为NuGet包并引入至.NET Core 1.1项目?
把GitHub仓库发布为NuGet包及PushSharp-Core的适配方案
当然可以将已有的GitHub仓库发布为NuGet包,下面我会先讲解通用的操作步骤,再针对你提到的PushSharp-Core库和.NET Core 1.1项目的场景,给出具体的适配和引入方案:
一、通用:将GitHub仓库转为NuGet包的步骤
- 准备项目配置:确保仓库中的项目是.NET类库(如.NET Standard/.NET Core)。打开项目的
.csproj文件,确认已配置PackageId、Version、Authors等必要的NuGet元数据;如果没有,也可以在打包时通过命令行参数指定。 - 生成NuGet包:
- 对于.NET Core/.NET Standard项目,在项目根目录执行:
执行完成后,会在dotnet pack --configuration Releasebin/Release目录下生成.nupkg格式的包文件。 - 对于旧版.NET Framework项目,可使用NuGet CLI执行
nuget pack命令,或者在Visual Studio中右键项目选择「打包」选项。
- 对于.NET Core/.NET Standard项目,在项目根目录执行:
- 发布到NuGet源:
- 若要发布到公共NuGet.org,先注册账号并获取API密钥,然后执行:
dotnet nuget push YourPackage.nupkg --api-key YourApiKey --source https://api.nuget.org/v3/index.json - 若无需公开,也可以将包推送到私有NuGet源(如公司内部源),或者仅保存在本地供自己项目使用。
- 若要发布到公共NuGet.org,先注册账号并获取API密钥,然后执行:
二、针对PushSharp-Core的适配与引入(.NET Core 1.1 + 指定版本)
由于PushSharp-Core可能没有现成适配.NET Core 1.1的官方NuGet包,你可以通过以下两种方式处理:
方法1:自行打包指定版本的NuGet包
- 克隆指定版本的仓库:先找到你需要的特定版本对应的Tag或Commit哈希,执行克隆并切换版本:
git clone https://github.com/geeklearningio/PushSharp-Core.git cd PushSharp-Core git checkout <目标版本Tag或Commit哈希> - 调整项目适配.NET Core 1.1:打开项目的
.csproj文件,将<TargetFramework>修改为netstandard1.6(.NET Core 1.1兼容此标准)或直接设置为netcoreapp1.1,同时检查并更新所有依赖包的版本,确保它们兼容.NET Core 1.1,修复可能的编译错误。 - 生成指定版本的包:执行打包命令时,通过参数指定版本号:
dotnet pack --configuration Release -p:PackageVersion=<你需要的版本号> - 引入到你的项目:
- 可以将生成的
.nupkg文件放到本地文件夹,作为临时私有源; - 在你的.NET Core 1.1项目中执行命令安装:
dotnet add package PushSharp-Core --version <指定版本号> --source <本地包文件夹路径> - 也可以在Visual Studio中通过「管理NuGet程序包」添加本地源后,搜索并安装指定版本。
- 可以将生成的
方法2:直接引用项目文件(无需打包)
如果不需要生成NuGet包,也可以直接将克隆下来的指定版本的PushSharp-Core项目添加到你的解决方案中:
- 打开你的.NET Core 1.1项目所在的解决方案,右键选择「添加」→「现有项目」,选中克隆后的
PushSharp-Core类库项目; - 在你的项目中右键选择「添加引用」,勾选
PushSharp-Core项目即可。这种方式适合需要修改库代码的场景,且能确保使用的是你指定的版本。
注意:.NET Core 1.1属于较旧的版本,在适配过程中如果遇到依赖兼容性问题,可能需要手动调整依赖包的版本号,确保所有组件都能在该环境下正常运行。
内容的提问来源于stack exchange,提问作者user6728767
相关产品推荐
相关产品推荐

