使用 NuGet 管理我們的程式集 預發行版

2022-07-17 03:18:09 字數 3356 閱讀 5831

在我們的專案中。須要引用的元件統一放在乙個 libs 資料夾下。不管對於平台上的公共元件。還是應用模組,都是如此。

假設乙個應用模組,比如能源管理(em)。要引用平台提供的公共元件,比如資料庫訪問(platform.pl)。那麼不但要把platform.pl程式集複製到em的libs資料夾下,也要把platform.pl所引用的程式集。也就是platform.pl的libs資料夾下的檔案。複製到em的libs資料夾下。

隨著平台上應用模組的增多,platform.pl被引用得也越來越多。我們是怎麼把platform.pl自身及其libs下的程式集給到這些應用模組的呢?是通過手工拷貝的方式。

那麼問題來了——platform.pl公升級了怎麼辦?答案是,僅僅能一一手工拷貝了。

僅僅是這些程式集普通情況下都是公開的,比如 nhibernate、spring.net等等。我們能夠使用 nuget 的機制,並且把共用的程式集放到內部的server上。

順帶說一下開發環境,當然是 .net 了,visual studio的版本號是 2012。這個版本號已經預設安裝了 nuget 包管理器。

開發好公共元件後。要將其公布到 nuget server上,須要做些準備工作。

1. 建立清單檔案。

開啟命令列程式。進入公共元件所在專案的目錄,執行 nuget spec。

就像以下這樣:

這樣就會建立乙個檔案:platform.pl.nuspec。開啟這個檔案,會看到是這個樣子的:

當中有些內容是不須要的,能夠刪除它。licenseurl。projecturl,iconurl,都能夠刪掉,反正它提示我們刪掉。

releasenotes和tags一定要改動。否則下一步會出現警告。

比如,我把這個檔案改動成這樣:

xml version="1.0"?>

$id$

$version$

$title$

$author$

$author$

false

$description$

mes平台資料庫訪問元件首次公布到nugetserver上

mes平台 資料庫訪問

2.打包。在上面的命令列介面下,執行 nuget pack,像以下這樣:

這樣就會建立乙個檔案 platform.pl.xyz.nupkg。這就是我們將要公布到nugetserver上的包。

有一種情況值得一提:由於某種原因,我們不得不使用spring.net的預發行版(pre-release)。好奇麼?這個原因就是,spring.net在併發環節使用了dictionary,而這個類不是執行緒安全的,導致在執行時出現故障。spring.net在預發行版 2.0.0-rc1攻克了這一問題,但還沒有出穩定(stable)版。所以我們就使用這個預發行版了。

nuget有一項規定:假設使用了非穩定版的程式集,所公布的程式集就不能是穩定版本號。否則,打包是就會出現這種錯誤:

當中的36行就是我們加進去的。

要做到這一點,我們首先要建立乙個站點。用常規的方法建立iis站點,能夠給這個站點起名為 nugetserver。

其次,我們要建立乙個web應用。

利用vs,建立乙個 asp.net空web應用程式。

能夠給這個專案起名為 nugetserver。

再次,在這個應用程式中,用 nuget 加入 nuget.server 包引用:

引用了nuget.server包以後。會自己主動增加非常多它引用的包。

再再次,將我們剛建立的 platform.pl.3.1.0-alpha.nupck 檔案,增加到這個web專案的packages目錄中:

最後,將這個應用公布到站點 nugetserver 中就能夠了。

公布成功後,開啟這個站點,能夠看到類似這種內容:

將程式集在內部nugetserver上公布成功後,就能夠將其引用到應用模組中了。

在應用模組引用之前,還須要做一件準備工作:將server加入到nuget配置中。

在vs 2012中,點選選單 工具 --> nuget程式包管理器 --> 管理解決方式的nuget程式包,在彈出的對話方塊中,點選左下角的「設定」button,會彈出「選項」對話方塊。點選右上角的大加號,能夠加入「可用程式包源」,將上面ie提示的位址。如http://localhost:8010/nuget。加入上去就能夠了。能夠起名字為mes:

這個帖子的標題帶有「預發行版」。表示這個做法剛實驗通過。真正用起來。應該會面臨諸多意想不到的問題。即便如此,也推薦使用。

建議我們的專案組:

2、mes平台搭建統一的 nuget server;

3、公共元件統一公布到 nuget server上,並參考語義化版本號的方式設定版本號號。



管理我們的情緒

管理我們的情緒 傳統上,我們否定某些情緒,認為他們是 負面 情緒,是因為它們會使我們的行動效率降低,使自己在身心上感覺到不舒服,例如憂慮 傷心 憤怒 焦急 生氣 壓力等。從神經生理學的角度去看,某些情緒,例如憂慮和憤怒,它是我們的大腦細胞釋放出來的腎上腺素 adrenaline 和皮質固醇 cort...

該如何管理我們的知識?

gmail幫助我管理了來自國內外多個郵件列表的郵件,標籤 過濾器 星標功能以及強大的文字搜尋能力都給我帶來了很大的方便,除此之外,gmail還有乙個優勢 它是基於web伺服器的。我們可以在世界各地的任何一台可以訪問www的機器上閱讀gmail郵件。我的乙個朋友曾突發奇想的說,gmail是乙個很好的私...

學習隨想 按照「程式化」來管理我們的學習

有的時候,總是在思考我們所學的技術能夠指導我們的生活跟工作不能。在今晚聽完包老師的課後,好像有所啟發。第一堂課講的是面向雲計算,實時資料處理的資料中心。雖說內容記憶了許多,但是對未來的趨勢個人覺得把握的很好。詳細講解了為什麼伺服器市場是那麼的重要,同時也有點明白華為為什麼那麼看重他的伺服器產品線。實...