<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
我們先在 Windows 上安裝好相應的環境。
Jenkins 依賴於 JDK 11,請自行查詢方法安裝。
在 https://www.jenkins.io/download/ 中可以下載到 Windows Jenkins 版本的安裝包,下載完畢後,直接安裝即可,安裝完成後會自動啟動。
Jenkins 的安裝目錄預設為:C:WindowsSystem32configsystemprofileAppDataLocalJenkins.jenkins,密碼/金鑰一般在其目錄下的 secret-file
檔案。
安裝 Jenkins 後,開啟 8080
埠存取 Jenkins,然後根據 Linux下使用Jenkins自動化構建.NET Core應用_安裝外掛 一節,把外掛安裝好,再額外安裝一個 powershell
外掛。
接著,在 Windows 伺服器中,將 Git 安裝好,一般 Git 的安裝目錄為 C:Program FilesGit
。
然後新增下面兩個 Git 相關的目錄到系統環境變數中。
C:Program FilesGitcmd C:Program FilesGitusrbin
如不設定 C:Program FilesGitusrbin 到環境變數,會出現 nohup 錯誤,Jenkins 依賴 nohup 命令。
WebDeploy 是一個 IIS 遠端部署工具,通過 WebDeploy 我們可以很方便地打包應用遠端部署到 IIS 中,而不需要手動重啟、更替網站檔案、重啟程式池等。WebDeploy 下載地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=43717
安裝完成後,其程式預設安裝目錄為:
C:Program FilesIISMicrosoft Web Deploy V3
請新增此目錄到系統環境變數中。
同時,在要被遠端部署的伺服器中,也安裝 WebDeploy。
如果你有一臺 Jenkins Master 伺服器,然後再新增 Windows Jenkins Node,做主從 Jenkins,那麼可以按照下面的方法將 Windows 加入到 Linux 節點中。
如果你只部署 Windows ,那麼 Windows 上的的 Jenkins 就是 Master,可以跳過此步。
開啟 Master Jenkins 的 Web 介面,在左側選單導航中開啟 Manage Jenkins
,然後在 System Configuration
中,選擇 Manage Nodes and Clouds
。
然後新增新的節點 “New Node”。
節點名稱可隨意,在接下來要求填寫的 Label 中,需要填寫 “windows” ,當然填寫其它標識也行,但是一般 Label 用來標識系統特性的,另外也會要求填寫構建目錄,這是用於存放 Jenkins 工作時的檔案,例如拉取程式碼、執行命令等,都會在這個目錄下操作。
點選藍色字型的 agent.jar
,可以下載 java 包。
將 agent.jar 包放到 Jenkins 所在的 Windows 中,然後按照提示的命令,啟動 agent.jar。
就是把 agent.jar 放到目錄中,然後開啟 powershell 或者 cmd,複製上面的
Java -jar agent.jar -jnlpUrl .....
命令,直接執行就行。
接著,在 Jenkins 介面,可以看到另一臺 Windows 從節點已經加了上去。
這一小節,介紹如何構建、遠端部署 .NET Core 應用到 IIS 中。
對於 .NET Core 應用,其過程比較簡單,只需要安裝 .NET Core SDK 即可,無需再額外操作。
.NET Core 各類版本下載地址:
https://dotnet.microsoft.com/download/dotnet
.NET Core 3.1 版本下載地址:
在你要部署應用的那臺 Windows 伺服器 上,開啟 IIS ,點選 ”應用程式池“,然後新增一個新的。
接著,新增一個網站。
然後開始新增一個新使用者,點選主機名稱,然後點選 “IIS 管理器使用者”,然後新增一個使用者。
然後為網站啟用 WebDeploy 部署。
筆者已經上傳了 Demo 專案已經 Jenkinsfile 檔案,讀者直接 fork 專案即可,範例專案在 coreiis 分支中。
https://github.com/whuanle/DotNetCoreJenkinsDemo/tree/coreiis
然後,下載原始碼,修改一下 Jenkinsfile 檔案。
// IIS 設定,遠端釋出的變數 IISTMP = 'C:/webdemo_tmp' // 用於打包釋出的臨時目錄 IISAPP = 'jenkinsdemo.com' // 網站名稱 IISADDR = 'https://192.168.0.66:8172/msdeploy.axd' // WebDeploy 的地址 IISUSER = 'jenkinesdemo' // 用於登入到 IIS 的賬號密碼 IISADMIN = 'jenkinesdemo'
按照筆者的 demo,讀者只需要修改一下 IISADDR 中的 IP 和 使用者名稱或密碼即可。
接著,使用 Jenkins ,新增流水線部署即可。這裡不再贅述 Jenkins 上的新建流程,讀者可以參考筆者的另一篇文章:
Linux下使用Jenkins自動化構建.NET Core應用_構建流水線
為了能夠編譯 .NET Framework 應用,我們需要搭建起 .NET Framework 應用的編譯環境,由於 .NET Framework 嚴重依賴 Vistual Studio,如果脫離 VS 環境,則需要安裝很多環境工具,才能使用命令編譯程式,比較麻煩,讀者需要耐心處理。
範例專案筆者已經上傳到 https://github.com/whuanle/DotNetCoreJenkinsDemo/tree/fxiis 中。
.NET Framework 包提供編譯、執行 .NET 程式的環境。
安裝 .NET Framework 框架,其版本不定,按照要編譯的專案其需要的版本為準,可安裝多個版本。
例如 .NET Framework 4.6.1 和 .NET Framework 4.6.1 Developer Pack 。
下載地址:https://dotnet.microsoft.com/download/dotnet-framework
MSBuild 是一個 .NET 程式的編譯工具,可以在脫離 VS 環境時使用。
如果要編譯 .NET Framewrok 專案,例如 4.6,請使用 MSBuild 14(對應 VS 2015),一般檔名稱為 BuildTools_Full_14.exe。
下載地址:
https://www.microsoft.com/en-US/download/details.aspx?id=48159
https://github.com/EWSoftware/SHFB/releases
安裝 MSBuild 後其目錄位置為:
C:Program Files (x86)MSBuild14.0Bin
請將其目錄路徑新增系統環境變數中。
nuget 用於還原專案的依賴,對於 .NET Framework 專案,nuget 的版本不能為 5.0 以上,建議使用 4.5 版本左右,否則會有相容問題!
安裝完畢後,nuget 程式目錄為:
C:Program Filesnuget
請新增目錄到系統環境變數中。
安裝各種需要的工具後,環境變數一共需要新增以下項:
C:Program Files (x86)MSBuild14.0Bin C:Program FilesGitcmd C:Program Filesnuget C:Program FilesGitusrbin C:Program FilesIISMicrosoft Web Deploy V3
請仔細檢查是否有遺留項。
要脫離 VS 環境,自動化構建 .NET Framework 應用,需要處理的組態檔和環境很多,我們需要修改一下專案。在本節中,將介紹如何設定 .NET Framework 自動化流水線的構建,使用 Jenkins 設定流水線,編寫 Jenkins 指令碼等。
一般一個解決方案中,有一個是需要釋出的主程式(主要為 Web 應用),請為需要釋出的 Web 專案,新增 Nuget 參照,搜尋 MSBuild.Microsoft.VisualStudio.Web.targets
包,新增參照到專案中。
因為 .NET Framework 專案需要依賴 Vistual Studio 釋出,如果不使用 VS 釋出,會出現很多問題,為了脫離 VS 環境,有人封裝了一個完整的 targets 檔案,指示 MSBuild 如何編譯此此程式。
對於需要釋出的 Web 專案需要定義 Web 釋出屬性,自動化構建中,依賴這些提前設定的屬性,這些屬性會生成一個 .pubxml
檔案,隨原始碼一起上傳到倉庫。
然後點選釋出,手動釋出一次到一個目錄。
儲存設定後,在專案的 PropertiesPublishProfiles
目錄,可以找到 FolderProfile.pubxml 檔案,其中有一行 PublishUrl
屬性,為網站釋出時的輸出目錄。
<PublishUrl>C:test</PublishUrl>
此目錄設定會影響到自動化構建時的輸出,編譯時,生成的檔案會輸出到這個目錄中,請確保在 Windows Jenkins 中,儲存此碟符!
然後直接在 Jenkins Web 上,操作即可。
當我們為 .NET Core / .NET Framework 專案建立網站完畢,此時程式跟前端是一起的,打包釋出不方便。
我們可以為前端專案新建一個無用的網站。
我可以編寫流水線指令碼,將前端檔案通過 WebDeploy 自動打包釋出到此網站中。
接著,在後端網站中,新增一個虛擬目錄,目錄跟前端網站的目錄一致。
這樣,前後端都可以分開部署,而在後端網站後,可以直接讀取前端檔案。
到此這篇關於Jenkins編譯.NET Core、.NET Framework專案並遠端部署到IIS的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45