中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

DotNetCore跨平臺~linux上還原自主nuget包需要注(zhu)意的問題

回到目錄

問題的產生的背景

由于我們使用了jenkins進行部署(jenkins~集群分發功能和職責處理),而(er)對于.net core項(xiang)(xiang)目來(lai)說(shuo)又是跨平臺(tai)的(de)(de),所以對它的(de)(de)項(xiang)(xiang)目拉取(qu),包的(de)(de)還原,項(xiang)(xiang)目的(de)(de)編譯(yi)和項(xiang)(xiang)目的(de)(de)發布都是在(zai)一臺(tai)linux的(de)(de)jenkins節(jie)點上進行(xing)的(de)(de),而(er)我們開發時(shi)是在(zai)windows系統,所以在(zai)進行(xing)還原和編譯(yi)時(shi)出現了一些問題,今天的(de)(de)文章主要(yao)是解決這些問題的(de)(de)。

.net frameworks時代

我們在(zai)(zai).net時(shi)代(dai)有(you)包(bao)管(guan)理工(gong)具(ju)nuget,并且已經知道了(le)它(ta)的(de)好(hao)處,類似于nodejs的(de)npm,幫助我們管(guan)理項目(mu)(mu)的(de)依賴(lai)關系,升級(ji)和卸載都十分(fen)方(fang)便,它(ta)在(zai)(zai).net項目(mu)(mu)里(li)被存儲(chu)到了(le)解決(jue)方(fang)案下(xia)的(de)packages目(mu)(mu)錄,而(er)(er)在(zai)(zai)發布時(shi),msbuild會(hui)(hui)根(gen)據這(zhe)個目(mu)(mu)錄去(qu)(qu)升級(ji)項目(mu)(mu),如果(guo)這(zhe)個packages里(li)沒有(you)對象的(de)包(bao)包(bao)依賴(lai),就會(hui)(hui)從(cong)nuget源(yuan)(yuan)里(li)進(jin)行下(xia)載,nuget全局源(yuan)(yuan)在(zai)(zai)windows系統里(li),一(yi)般存儲(chu)在(zai)(zai)C:\\Users\\lind\\AppData\\Roaming\\NuGet\\NuGet.Config文件里(li),而(er)(er)本地系統也(ye)會(hui)(hui)有(you)一(yi)個包(bao)包(bao)的(de)緩存,一(yi)般會(hui)(hui)存儲(chu)在(zai)(zai)C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\目(mu)(mu)錄下(xia)面,這(zhe)樣在(zai)(zai)下(xia)次(ci)安裝包(bao)的(de)時(shi)候(hou),就可以直接從(cong)本地進(jin)行安裝了(le),官(guan)方(fang)nuget源(yuan)(yuan)的(de)地址是(shi)//api.nuget.org/v3/index.json,如果(guo)你自己(ji)去(qu)(qu)定義nuget服務器的(de)話(hua),也(ye)可以把它(ta)添加到nuget源(yuan)(yuan)里(li),直接修改C:\Users\lind\AppData\Roaming\NuGet\Nuget.Config文件就可以了(le),或(huo)者在(zai)(zai)vs的(de)工(gong)具(ju)-選(xuan)項里(li)去(qu)(qu)添加它(ta)。

.net core時代

在進行跨平(ping)臺的(de)(de)core時代后,我(wo)(wo)們的(de)(de)packages文件(jian)夾沒有了(le),之前(qian)(qian)的(de)(de)包都被存(cun)儲到了(le)obj目錄下面(mian),而包的(de)(de)映射關系在obj\project.assets.json這個文件(jian)里,我(wo)(wo)們可以看到當前(qian)(qian)項目引用的(de)(de)包包,包包的(de)(de)源,包包的(de)(de)緩存(cun)等信息。

注意:nuget在各大系統中源地址的路徑

  1. Windows 中路徑是 %appdata%\NuGet\NuGet.Config ,
  2. Mac 與 Linux 中的路徑是 ~/.nuget/NuGet/NuGet.Config
  3. 如果沒有 NuGet.Config 文件,可以運行 dotnet restore 命令生成。

還原自主Nuget包需要注意的問題

  1. 你的nuget自主服務器需要被當前linux服務器訪問到
  2. 需要在linux里建立一個全局的nuget.config文件,把自主源地址添加
  3. 把obj目錄添加到源代碼管理里
  4. dotnet restore還源項目,依賴包由obj\project.assets.json文件確定
  5. dotnet build編譯項目里,需要有Roslyn文(wen)件夾的執行(xing)權限
  6. 最后才是成功發布

生成過程中的一些錯誤截圖

自主依賴包找不到

沒有對Roslyn的執行權限(xian)

最后,等待我們的才是成(cheng)功!

成功得來不容!

希望(wang)通過我(wo)們的分享(xiang),可以幫到(dao)正遇到(dao)問題的您!

感謝各位閱讀!

 回到目錄

posted @ 2017-09-28 10:23  張占嶺  閱讀(2415)  評論(1)    收藏  舉報