亚洲精品亚洲人成在线观看麻豆,在线欧美视频一区,亚洲国产精品一区二区动图,色综合久久丁香婷婷

              當(dāng)前位置:首頁(yè) > IT技術(shù) > Web編程 > 正文

              Jekins 如何部署.net framework項(xiàng)目
              2022-09-06 22:58:33


              說(shuō)明:本文中,“構(gòu)建”“持續(xù)構(gòu)建”“編譯”“生成”的用法并不嚴(yán)謹(jǐn),大概知道是什么意思就行。

              首先說(shuō)明,持續(xù)構(gòu)建的話,是需要用到命令行的。
              但dotnet core的命令似乎比dotnet framework的項(xiàng)目要簡(jiǎn)單一點(diǎn)。
              因?yàn)閐otnetcore 的構(gòu)建命令是 ???dotnet msbuild xxxxx.csproj/yyyyy.sln??? 而 dotnet framework的構(gòu)建命令是 ??.../msbuild.exe xxxx.csproj/yyyyy.sln??,而其中最讓人(主要是沒(méi)掉過(guò)坑的人,掉過(guò)就好了)困惑的是這個(gè)??msbuild.exe??究竟是哪里的??msbuild.exe?? ?畢竟windows中安裝了dotnet framework SDK 或者不同版本的visual studio之后,是會(huì)有很多的??msbuild.exe??的,讓人不明白究竟該用哪個(gè)而已。


              下面開始講解在windows中如何構(gòu)建一個(gè) dotnet framework 項(xiàng)目,其中為了不讓項(xiàng)目本身的復(fù)雜度影響了主體思路,這里就認(rèn)為是要構(gòu)建的是一個(gè)類似于 ??Hello World??? 的簡(jiǎn)單控制臺(tái)項(xiàng)目。
              綜上,環(huán)境:
              開發(fā)機(jī),windows pc;
              發(fā)布機(jī)器,windows server;
              項(xiàng)目,一個(gè)簡(jiǎn)單的dot net framework 控制臺(tái)項(xiàng)目。(我這里使用了4.5.2版本)


              1. 開發(fā)機(jī)上新建項(xiàng)目,最好是用代碼管理如git初始化,使得項(xiàng)目可以在其他機(jī)器上在有網(wǎng)的情況下可以clone得到。
              2. 開發(fā)機(jī)上隨便在項(xiàng)目里寫點(diǎn)什么,只要能編譯通過(guò)就行。比如??hello world???。
                另外,建議項(xiàng)目中添加一點(diǎn)對(duì)于nuget包的依賴,隨便選點(diǎn)什么,比如 log4net引用。
              3. 在開發(fā)機(jī)上嘗試編譯項(xiàng)目。
                (經(jīng)過(guò)多次嘗試,確認(rèn)了命令行編譯項(xiàng)目時(shí)候應(yīng)該使用???C:windowsMicrosoft .NETFrameworkv4.xxxmsbuild.exe??? 這個(gè)msbuild.exe。不過(guò)具體還是根據(jù)項(xiàng)目類型,選擇是Framework64還是不帶64,是v4.xxx還是3.x,2.x,這個(gè)意思很簡(jiǎn)單,看不懂就沒(méi)救了)
                如果項(xiàng)目在C:projects est 路徑下,那么編譯的命令應(yīng)該是

              C:windowsMicrosoft .NETFramework??v4.xxx??msbuild.exe C:projects est est.sln

              或者

               C:windowsMicrosoft .NETFrameworkv4.xxxmsbuild.exe C:projects	est	est	est.csproj

              當(dāng)然可能還需要帶 諸如 /p:Configuration=Release /p:plotform="Any CPU"等其余參數(shù),自己看情況辦。
              4. 在測(cè)試機(jī)上,git clone項(xiàng)目,并用同樣命令嘗試編譯項(xiàng)目。
              5. 如果不成功, 就要不斷嘗試正確的msbuild.exe 和路徑,參數(shù)等,只要環(huán)境沒(méi)有問(wèn)題,就一定可以成功。
              6. 但是,這里一個(gè)非常讓人抓狂的問(wèn)題來(lái)了,nuget依賴怎么辦呢?現(xiàn)在我編譯沒(méi)有明顯問(wèn)題,只是我怎么知道該到哪去找nuget包呢?
              這個(gè)問(wèn)題就卡了我很久。
              上nuget官網(wǎng),下載nuget.exe文件。
              經(jīng)嘗試,這個(gè)文件放在項(xiàng)目中(即跟sln或者csproj文件同級(jí)的目錄下,執(zhí)行 nuget.exe restore 命令,則可獲取到需要的nuget包。這也就是我經(jīng)過(guò)多次嘗試后得到的經(jīng)驗(yàn))
              那么,你可以在腳本中添加操作,每次都執(zhí)行nuget.exe restore命令。
              也可以將nuget.exe添加到環(huán)境變量(不解釋),然后每次都執(zhí)行,這樣會(huì)方便一點(diǎn)。
              7.最后再測(cè)試,發(fā)現(xiàn)發(fā)布機(jī)器上通過(guò)這樣的操作和命令,完全可以成功編譯項(xiàng)目。
              這離最終的成功已經(jīng)很近了。
              實(shí)際上,對(duì)于理解何為jekins的人來(lái)說(shuō),這件事到這里就已經(jīng)完畢了,剩下的都可以自己完成。


              1.上jekins官網(wǎng),下載,安裝,啟動(dòng)jekins,注冊(cè)賬戶,不解釋。dotnet 項(xiàng)目則需要安裝msbuild ,mstest ,mstestrunner插件。

              2.jenkins全局配置msbuild。

              Jekins 如何部署.net framework項(xiàng)目_nuget包找不到


              3. 新建項(xiàng)目,配置項(xiàng)目

              Jekins 如何部署.net framework項(xiàng)目_microsoft_02


              4. 構(gòu)建項(xiàng)目。

              基本上構(gòu)建成功,不成功也好排查。

              其實(shí)關(guān)于jekins的使用,更多的一共是自己學(xué)習(xí),多次嘗試,才能明白。


              這其實(shí)是一篇信息量很大的博文,先暫時(shí)記錄一下,以后有機(jī)會(huì)再整理。沒(méi)有機(jī)會(huì)就這樣了。


              補(bǔ)充:

              1.如果開發(fā)機(jī)用VS可以編譯成功,但命令行中提示有不支持的語(yǔ)法。
              那么可能是開發(fā)機(jī)用了更高級(jí)的語(yǔ)法規(guī)則編譯(???盡管項(xiàng)目是基于.net??? framework 4.5.2的),比如用了C#6.0
              ???而發(fā)布機(jī)器只安裝了.net??? framework 4.5.2,那么就不支持有些最新的語(yǔ)法。
              所以在這種情況下,在發(fā)布機(jī)器上安裝最新的sdk。
              如圖。
              ???微軟官網(wǎng)SDK下載??? 下載相應(yīng)的SDK即可。
              SDK里面已經(jīng)包含了Runtime。

              2.如果Jekins的Job里需要用到windows的bat命令進(jìn)行一系列操作,那么使用Jenkins的“ 參閱 可用環(huán)境變量列表 ” 會(huì)有一定幫助。
              寫法如 “%WORKSPACE%”

              3.如果路徑中有空格,如 ??C:Program Files (x86)Microsoft.NET???,則有必要在變量?jī)蛇叾技由想p引號(hào)。
              如:

              echo %WORKSPACE%

              rem 真實(shí)路徑
              set RootFolderPath=%WORKSPACE%
              set SourceFolder=%RootFolderPath%BEQDMicePaymentQDMice.PaymentSMS_Service
              set InstallUtilPath=C:WindowsMicrosoft.NETFrameworkv4.0.30319
              set DestExePath=%SourceFolder%inReleaseSMS_Service.exe
              set ServiceName=SMS_Service

              rem 停止,卸載服務(wù)
              net stop %ServiceName%
              %InstallUtilPath%InstallUtil.exe -u "%DestExePath%"

              rem 安裝,啟動(dòng)服務(wù)
              echo %InstallUtilPath%InstallUtil.exe "%DestExePath%"
              %InstallUtilPath%InstallUtil.exe "%DestExePath%"

              echo net start %ServiceName%
              net start %ServiceName%


              本文摘自 :https://blog.51cto.com/u

              開通會(huì)員,享受整站包年服務(wù)立即開通 >