爲了加強代碼的安全性和企業團隊開發的高效性,搭建私有的package 包管理服務器是頗有必要的,搭建私有的類庫管理服務有如下優勢:javascript
使用BaGet 搭建本地私有nuget 服務器php
BaGet 是GitHub上開源的一個項目,是一個輕量級NuGet和符號服務器,查看詳情。html
具體實現過程以下:java
{
...
"Mirror": {
"Enabled": true,
"PackageSource": "https://api.nuget.org/v3/index.json"
},
...
}
須要API Key 的能夠配置本身的API Key,我是搭建簡單的測試版本,全部就沒有配置git
"ApiKey": "oy2bgb2qfcnbd3hpge2a2qp3t5ud7khezf7zbyqhurg64u"
3.啓動BaGet服務github
啓動服務的前提是要安裝.NetCore SDKweb
在BaGet文件目錄下執行:shell
dotnet BaGet.dll
打開瀏覽器,運行http://localhost:5000 便可看到nuget 服務已啓動
json
爲了測試本地nuget 服務器是否可用,在vs中新建一個測試項目,如下簡單的代碼。api
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'.
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.http://www.javashuo.com/article/p-disrzfox-bs.html