使用BaGet 搭建私有nuget 服務器


使用BaGet 搭建私有nuget 服務器

引言

為了增強代碼的安全性和企業團隊開發的高效性,搭建私有的package 包管理服務器是很有必要的,搭建私有的類庫管理服務有以下優點:

  • 實現關鍵性代碼保密
  • 提供代碼利用率
  • 實現代碼不同版本管理

使用BaGet 搭建本地私有nuget 服務器

BaGet 是GitHub上開源的一個項目,是一個輕量級NuGet和符號服務器,查看詳情

具體實現過程如下:

1.下載最新release 版本
  1. 在github 中下載最新的release版本,點擊下載
    enter description here
  2. 解壓文件,修改appsetting.json 配置文件
    具體配置操作可參考官方文檔
    為了能夠從nuget 庫中獲取其他的包文件,需要配置使用官放鏡像。
{
    ...

    "Mirror": {
        "Enabled":  true,
        "PackageSource": "https://api.nuget.org/v3/index.json"
    },
    ...
}

需要API Key 的可以配置自己的API Key,我是搭建簡單的測試版本,所有就沒有配置

"ApiKey": "oy2bgb2qfcnbd3hpge2a2qp3t5ud7khezf7zbyqhurg64u"

3.啟動BaGet服務

啟動服務的前提是要安裝.NetCore SDK

在BaGet文件目錄下執行:

dotnet BaGet.dll


打開瀏覽器,運行http://localhost:5000 即可看到nuget 服務已啟動
enter description here

2.生成.nupkg 包文件

為了測試本地nuget 服務器是否可用,在vs中新建一個測試項目,以下簡單的代碼。

namespace Easten.Core
{
    public class Handler
    {
        public string Name { get; set; }
        public bool IsLock { get; set; }
        public void GetValue(int abc,out object value) {
            value=abc * 10.3;
        }
    }
}

使用nuget 命令打包可執行文件

1.使用nuget 命令之前需要安裝nuget.exe,點擊安裝,安裝完成之后在系統變量中進行配置才可通過命令調用。
2.驗證nuget 有無安裝和配置成功,可打開cmd 或者powershell輸入 nuget

C:\Windows\System32>nuget NuGet Version: 5.0.2.5988

3.將需要打包的測試項目編譯成功后,在項目.csproj目錄中打開cmd 或者powershell 並執行:nuget spec

PS F:\個人\開發\技術\Nuget\NugetTest\Easten.Core> nuget spec
已成功創建“Easten.Core.nuspec”。

4.用文本編輯器將上述命令執行完成的.nuspec 文件進行編輯。

<?xml version="1.0"?>
<package >
  <metadata>
    <id>Dongteng</id>
    <version>1.0.0</version>
    <title>ceshiceshi</title>
    <authors>Dongteng</authors>
    <owners>$author$</owners>
    <licenseUrl>http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE</licenseUrl>
    <projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl>
    <iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>dongteng test</description>
    <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
    <copyright>Copyright 2019</copyright>
    <tags>Tag1 Tag2</tags>
  </metadata>
</package>

根據實際的需求修改,一般修改id、version、authors、description等
5.修改完以上信息后執行命令:nuget pack,進行打包.正常結果如下

PS F:\個人\開發\技術\Nuget\NugetTest\Easten.Core> nuget pack
正在嘗試從“Easten.Core.csproj”生成程序包。
MSBuild auto-detection: using msbuild version '16.200.19.32702' from 'D:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\bin'.
正在打包“F:\個人\開發\技術\Nuget\NugetTest\Easten.Core\bin\Debug”中的文件。
正在對元數據使用“Easten.Core.nuspec”。
Successfully created package 'F:\個人\開發\技術\Nuget\NugetTest\Easten.Core\Dongteng.1.0.0.nupkg'.
3.發布.nupkg 包,並在項目中恢復使用

1.運行命令行,將包文件推送到本地nuget服務器中,執行命令:(如果設置了Key,則需要在包名之前添加對應的ApiKey)

dotnet nuget push -s http://localhost:5000/v3/index.json Dongteng.1.0.0.nupkg

2.提示推送成功之后在瀏覽器中刷新服務,查看推動的內容。

3.在vs 中新建項目,打開nuget 程序包管理控制台,在配置程序包源,指向:http://localhost:5000/v3/index.json

4.在控制台中執行包安裝,即安裝完成。

PM> Install-Package Dongteng -Version 1.0.0

5.編寫測試代碼,執行調用

class Program
    {
        static void Main(string[] args) {
            var a = new Easten.Core.Handler();
            a.GetValue(222, out var ss);
        }
    }

通過以上步驟即可完成基礎的本地Nuget 服務的搭建及package 包的發布於安裝,比較簡單。

知識拓展 ,使用NuGet Package Explorer 打包工具對需要發布的程序包執行打包處理

具體操作可參考文檔:
1.https://blog.csdn.net/u011523479/article/details/82012340
2.https://www.cnblogs.com/xieyang07/p/10193283.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM