Jenkins結合.net平臺綜合之權限修正和文件排除

筆者在發佈項目的時候遇到這樣一個問題,第一次發佈的時候成功發佈,而後再次發佈失敗.可是這個問題很快就排除了,這裏提出來是爲了幫助遇到這個問題的小夥伴,以順利避開坑.之因此會這樣是由於咱們在設置權限的時候只給給了用戶讀和寫的權限,而沒有給刪除權限,所以形成沒法覆蓋文件. 服務器

解決辦法很簡單,咱們打開filezilla server,點擊小人圖標,進入用戶設置頁,而後點擊shared folder進入目錄權限配置欄 測試

這裏咱們把全部的權限都勾選,重複發佈失敗的問題就解決啦. spa

下面咱們來解決另一個問題.咱們看一下發布到iis服務器上的文件結構,以下圖 debug

首先發現的問題是.ApplicationInsight.config,Web.debug.config和Web.Release.config在服務器環境中都是沒必要要的,可是整個目錄複製把這些內容也複製來了. server

另一個問題是.Content,fonts這兩個目錄首次發佈的時候拷貝過來就行了,之後發佈不是每次都要拷貝這兩個目錄,複製太多靜態資源也會影響發佈效率,甚至有些狀況下本機環境和測試服務器環境下Content文件夾的內容是徹底不同的,咱們根本不須要複製這個目錄.咱們如何排除特定的文件和文件夾,只發布必要的內容呢. blog

這裏取決於上圖紅色框選部分的配置,傳輸選項有一個FilemMask屬性,它接收一個文本格式,用於指定包含/排除特定的文件/文件夾.根據上面的配置,ApplicationInsights.config文件就被排除了. 資源

咱們在Jenkins裏再執行一次構建,能夠看到此次上傳到iis目錄下的文件結構以下 io

ApplicationInsight.config文件已經被排除了. 效率

有些時候咱們須要排除一類文件,好比說咱們要排除全部的jpeg文件,此時的格式是$transferOptions.FileMask="|*.jpeg"其中*匹配任意字符 配置

多個須要排除的項之間用逗號隔開

如剛纔所說,咱們有時候須要排除整個目錄,而不單單是特定的文件或者特定類型的文件.好比咱們想要排除Cotent文件夾,此時語法是這樣的

$transferOptions.FileMask="|Content/"content後面跟一個斜槓,用於指示它是要排除的目錄,而不是文件

咱們把配置文件中關於文件過濾的一行改成以下

咱們清空iis目錄下內容,而後再在Jenkins裏觸發一次構建,構建成功後,咱們打開iis目錄,看到以下文件結構

能夠看到ApplicationInsight.config文件和Content目錄都沒有發佈.

大夥能夠參考以上內容自行排除Web.Debug.config和Web.Release.Config

相關文章
相關標籤/搜索