中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Jenkins怎么編譯.NET?Core和.NET?Framework項目并遠程部署到IIS

發布時間:2022-04-02 10:42:27 來源:億速云 閱讀:401 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“Jenkins怎么編譯.NET Core和.NET Framework項目并遠程部署到IIS”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Jenkins怎么編譯.NET Core和.NET Framework項目并遠程部署到IIS”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

    Windows

    我們先在 Windows 上安裝好相應的環境。

    Jenkins 依賴于 JDK 11,請自行查找方法安裝。

    Jenkins 的安裝目錄默認為:C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins.jenkins,密碼/密鑰一般在其目錄下的 secret-file 文件。

    安裝 Jenkins 后,打開 8080 端口訪問 Jenkins,然后根據 Linux下使用Jenkins自動化構建.NET Core應用_安裝插件 一節,把插件安裝好,再額外安裝一個 powershell 插件。

    安裝 Git

    接著,在 Windows 服務器中,將 Git 安裝好,一般 Git 的安裝目錄為 C:\Program Files\Git

    然后添加下面兩個 Git 相關的目錄到系統環境變量中。

    C:\Program Files\Git\cmd
    C:\Program Files\Git\usr\bin

    如不配置  C:\Program Files\Git\usr\bin 到環境變量,會出現 nohup 錯誤,Jenkins 依賴 nohup 命令。

    WebDeploy

    WebDeploy 是一個 IIS 遠程部署工具,通過 WebDeploy 我們可以很方便地打包應用遠程部署到 IIS 中,而不需要手動重啟、更替網站文件、重啟程序池等。

    安裝完成后,其程序默認安裝目錄為:

    C:\Program Files\IIS\Microsoft Web Deploy V3

    請添加此目錄到系統環境變量中。

    同時,在要被遠程部署的服務器中,也安裝 WebDeploy。

    Windows 從節點

    如果你有一臺 Jenkins Master 服務器,然后再添加 Windows Jenkins Node,做主從 Jenkins,那么可以按照下面的方法將 Windows 加入到 Linux 節點中。

    如果你只部署 Windows ,那么 Windows 上的的 Jenkins 就是 Master,可以跳過此步。

    打開 Master Jenkins 的 Web 界面,在左側菜單導航中打開 Manage Jenkins,然后在 System Configuration 中,選擇 Manage Nodes and Clouds

    Jenkins怎么編譯.NET?Core和.NET?Framework項目并遠程部署到IIS

    然后添加新的節點 “New Node”。

    節點名稱可隨意,在接下來要求填寫的 Label 中,需要填寫 “windows” ,當然填寫其它標識也行,但是一般 Label 用來標識系統特性的,另外也會要求填寫構建目錄,這是用于存放 Jenkins 工作時的文件,例如拉取代碼、執行命令等,都會在這個目錄下操作。

    Jenkins怎么編譯.NET?Core和.NET?Framework項目并遠程部署到IIS

    點擊藍色字體的 agent.jar,可以下載 java 包。

    Jenkins怎么編譯.NET?Core和.NET?Framework項目并遠程部署到IIS

    將 agent.jar 包放到 Jenkins 所在的 Windows 中,然后按照提示的命令,啟動 agent.jar。

    就是把 agent.jar 放到目錄中,然后打開 powershell 或者 cmd,復制上面的 Java -jar agent.jar -jnlpUrl ..... 命令,直接執行就行。

    接著,在 Jenkins 界面,可以看到另一臺 Windows 從節點已經加了上去。

    Jenkins怎么編譯.NET?Core和.NET?Framework項目并遠程部署到IIS

    .NET Core

    這一小節,介紹如何構建、遠程部署 .NET Core 應用到 IIS 中。

    對于 .NET Core 應用,其過程比較簡單,只需要安裝 .NET Core SDK 即可,無需再額外操作。

    處理 IIS

    在你要部署應用的那臺 Windows 服務器 上,打開 IIS ,點擊 ”應用程序池“,然后添加一個新的。

    Jenkins怎么編譯.NET?Core和.NET?Framework項目并遠程部署到IIS

    接著,添加一個網站。

    Jenkins怎么編譯.NET?Core和.NET?Framework項目并遠程部署到IIS

    然后開始添加一個新用戶,點擊主機名稱,然后點擊 “IIS 管理器用戶”,然后添加一個用戶。

    Jenkins怎么編譯.NET?Core和.NET?Framework項目并遠程部署到IIS

    Jenkins怎么編譯.NET?Core和.NET?Framework項目并遠程部署到IIS

    然后為網站啟用 WebDeploy 部署。

    Jenkins怎么編譯.NET?Core和.NET?Framework項目并遠程部署到IIS

    Jenkins怎么編譯.NET?Core和.NET?Framework項目并遠程部署到IIS

    處理項目 Jenkinsfile

    筆者已經上傳了 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 應用的編譯環境,由于 .NET Framework 嚴重依賴 Vistual Studio,如果脫離 VS 環境,則需要安裝很多環境工具,才能使用命令編譯程序,比較麻煩,讀者需要耐心處理。

    示例項目筆者已經上傳到 https://github.com/whuanle/DotNetCoreJenkinsDemo/tree/fxiis 中。

    安裝環境

    .NET Framework SDK

    .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

    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)\MSBuild\14.0\Bin

    請將其目錄路徑添加系統環境變量中。

    Nuget

    nuget 用于還原項目的依賴,對于 .NET Framework 項目,nuget 的版本不能為 5.0 以上,建議使用 4.5 版本左右,否則會有兼容問題!

    安裝完畢后,nuget 程序目錄為:

    C:\Program Files\nuget

    請添加目錄到系統環境變量中。

    安裝各種需要的工具后,環境變量一共需要添加以下項:

    C:\Program Files (x86)\MSBuild\14.0\Bin
    C:\Program Files\Git\cmd
    C:\Program Files\nuget
    C:\Program Files\Git\usr\bin
    C:\Program Files\IIS\Microsoft 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 文件,隨源代碼一起上傳到倉庫。

    Jenkins怎么編譯.NET?Core和.NET?Framework項目并遠程部署到IIS

    然后點擊發布,手動發布一次到一個目錄。

    Jenkins怎么編譯.NET?Core和.NET?Framework項目并遠程部署到IIS

    保存設置后,在項目的 Properties\PublishProfiles 目錄,可以找到 FolderProfile.pubxml 文件,其中有一行 PublishUrl 屬性,為網站發布時的輸出目錄。

    <PublishUrl>C:\test</PublishUrl>

    此目錄配置會影響到自動化構建時的輸出,編譯時,生成的文件會輸出到這個目錄中,請確保在 Windows Jenkins 中,存儲此盤符!

    然后直接在 Jenkins Web 上,操作即可。

    Jenkins怎么編譯.NET?Core和.NET?Framework項目并遠程部署到IIS

    前后端分類方案

    當我們為 .NET Core / .NET Framework 項目創建網站完畢,此時程序跟前端是一起的,打包發布不方便。

    我們可以為前端項目新建一個無用的網站。

    Jenkins怎么編譯.NET?Core和.NET?Framework項目并遠程部署到IIS

    我可以編寫流水線腳本,將前端文件通過 WebDeploy 自動打包發布到此網站中。

    接著,在后端網站中,添加一個虛擬目錄,目錄跟前端網站的目錄一致。

    Jenkins怎么編譯.NET?Core和.NET?Framework項目并遠程部署到IIS

    這樣,前后端都可以分開部署,而在后端網站后,可以直接讀取前端文件。

    讀到這里,這篇“Jenkins怎么編譯.NET Core和.NET Framework項目并遠程部署到IIS”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    泌阳县| 宜章县| 凉山| 镇江市| 曲沃县| 古蔺县| 吉首市| 澳门| 新野县| 赣榆县| 开阳县| 盘山县| 普宁市| 中超| 双辽市| 福安市| 宣城市| 洞口县| 新丰县| 遂宁市| 韶关市| 嵊泗县| 西乌珠穆沁旗| 怀化市| 金门县| 博客| 崇义县| 平陆县| 安多县| 会同县| 台北市| 随州市| 刚察县| 昆山市| 杂多县| 德清县| 廉江市| 噶尔县| 曲沃县| 集安市| 南雄市|