Browse by Tags

在 TFS 2012 Build Service 編譯 VS2015 專案
工作環境用的是 TFS 2012 Build Service,最近要編譯 VS2015 專案,程式用到 C# 6.0 超好用的字串插值 寫法當場被打臉,得到 Unexpected character '$' 錯誤。原因很明顯,VS2015 改用 Roslym 編譯器,TFS 2012 Build Service 上沒裝是要編個屁? 經過一番摸索(還學到 TFS 的編譯範本原理)終於搞定,細節整理如下。 首先要下載 MS Build Tools 2015 安裝到 Build Service...
Posted 05 March 2017 11:57 AMJeffrey | with no comments 2,387
Filed under: ,
徹底移除已簽入TFS的項目
保留完整版本變更歷程是版控系統的核心精神之一,檔案項目一旦簽入,就算使用者要求刪除,項目從清單上消失,仍可透過歷史記錄還原每一個曾簽入的版本。 實務上,偶爾會發生不慎誤將不該簽入內容丟上版控的狀況(例如:誤簽入個資或機密敏感內容),此時版控對保留完整軌跡的堅持變成缺點,不管刪除或 Rollback 都無法防止他人透過歷史記錄還原內容。 非常狀況只能用非常手段,在 TFS 上遇此種狀況,tf.exe 工具有個 destroy 指令 可以解決問題。 語法範例如下: tf destroy $/src/path...
Posted 06 February 2017 10:59 PMJeffrey | with no comments 3,480
Filed under:
【茶包射手日記】TypeScript MSBuild編譯失敗
接獲報案,專案修改無法使用 TFS Build Service 編譯,錯誤訊息如下: D:\Works\1\BLAH\src\Web\Scripts\Foo.ts (112): Build: 'let' declarations are only available when targeting ECMAScript 6 and higher. 訊息指向程式使用TypeScript新支援的 let語法 ,只能編譯成ES6,但專案設定輸出ES5。但專案在本機Visual Studio...
Posted 01 June 2016 05:45 AMJeffrey | with no comments 3,034
Filed under: ,
首遇TFS自動合併出錯案例
換用TFS版控時我們開始採用「多重簽出」原則,大幅改善VSS時代「專案一被人簽出其他人就動不了」的困擾。但隨之而來的副作用是:多人同時修改,若簽入時別人已先簽入更新的版本,就需要執行程式碼合併。 在我們的經驗裡,TFS有個神奇又方便的「自動合併」功能,只要程式修改幅度不大,沒有改到同一段程式,TFS幾乎都能正確自動合併,不需人為介入,少數難以判別的情況才會跳出提示要求人工處理。 但時間久了,我不免懷疑,程式碼合併的情境百百種,肉眼合併都難保沒有疏漏,演算法要怎麼寫才能不出錯?但這一兩年下來,記憶中都還真沒出過亂子...
Posted 16 May 2016 09:31 PMJeffrey | with no comments 3,081
Filed under:
閒聊-你敢不敢幫請假的同事編譯程式上線?
前幾天,參與的專案遇到緊急狀況,剛改版的系統有一段邏輯因正式台資料與預期不同而出錯,需要緊急換版,負責的同事因故無法即刻救援,改派我代打上陣。有一段時間沒參與,我對最新開發進度有點脫節,本次代打任務形同開發團隊的一次臨時抽考。 在我的開發機器開啟Visual Studio,先從TFS版控抓回最新的程式碼版本(Get Latest Version),檢視問題程式的修改歷史(View History),使用版本比對(Compare)功能找出本次修改位置,與PM確定規格後修正程式重新簽入(Check In...
Posted 11 May 2016 08:05 AMJeffrey | 3 comment(s) 8,208
Filed under:
開啟TFS Build Service Log
前天提過的TFS Build Queue卡單今天再度上演,一樣又是重啟TFS Build Service才解決,由於已非偶發罕例,決定展開調查。由事件檢視器查到一筆發生在卡單前一刻的可疑錯誤,Build 1257號,正好是被卡住1258號的前一筆,訊息為An error occurred while calling tracking participants causing the instance to be aborted. 而回頭檢查前天出錯前也有一筆一模一樣的錯誤訊息,推測極可能是導致Queue停止運作的元凶...
Posted 24 March 2016 11:35 PMJeffrey | with no comments 2,008
Filed under:
TFS Build Queue卡單排除經驗一則
今早使用TFS Build Service建置部署時,建置作業卡在Queue裡遲遲不開始,等了五分鐘感到不對勁,展開調查。 狀態顯示我排在第二順位,似乎在等待其他建置執行完畢,但超過5分鐘頗為異常,決定查查前面的烏龜車是哪一台。 登楞!整個Queue裡只有我一人。夾緊擴約肌在廁所門口苦等十分鐘,忍不住破門想抓出是誰著佔茅坑,結果沒人? 推測是TFS Build Service故障,啟動3R(Restart, Reboot, Reinstall)第一步,遠端登入Build Service主機開啟TFS管理主控台...
Posted 22 March 2016 11:18 PMJeffrey | with no comments 1,941
Filed under:
NuGet packages目錄舊檔大掃除
NuGet已是開Visual Studio寫專案的必備工具,用關鍵字找到項目就能安裝,有新版本點一下就更新,非常方便。 我們遇到一項困擾:NuGet在升級程式套件前會移除專案的舊版DLL,至於packages目錄下的舊版檔案若已無其他專案參照,也會一併刪除,理論上不會累積。依NuGet 文件 說明 ,packages目錄之檔案移除原則如下: Files in the solution folder. The folder for the package you removed is deleted...
Posted 02 March 2016 08:37 PMJeffrey | with no comments 3,574
Filed under: ,
NuGet Package簽入TFS時勿忘非程式庫Package
公司因為TFS Build Service無法存取網際網路還原NuGet Package,故我們採取 將NuGet Packages一律簽入TFS 的策略。近日再發現TFS Build Service行為特性一則,筆記之。 某專案使用Build Service編譯時出現NuGet無法還原錯誤,想起專案本次改版時更新NLog版本到4.2.3,趕緊手動補簽入NLog,但編譯持續出錯,疑惑NLog.dll已補為何還是編譯失敗,追了一陣找出答案,專案除了更新NLog,還增加了兩個Package,在專案加入NLog...
Posted 27 December 2015 09:21 PMJeffrey | with no comments 2,349
Filed under: ,
TFS Power Tools導致桌面凍結
TFS Power Tools 有個好用功能,在檔案總管加入右鍵選單提供簽入、簽出、版本比較等TFS操作,檔案、資料夾圖示也會加上最新版本(綠三角)、待簽入新増(紅十字)、待簽入修改(鉛筆)等狀態標示,不需開啟Visual Studio或TFS Explorer就能管理,十分方便。 但自從安裝後,電腦偶爾會發生桌面當住,滑鼠鍵盤全無反應的狀況,此時只能強制重開機或找另一台機器遠端桌面登入成其他使用者將當explorer.exe砍掉,狀況才會解除。 一開始不明所以,當機當得莫名其妙,直到有一次在事件檢視器看到當機期間TFSShellExt噴出大量警告及錯誤事件...
Posted 19 September 2015 05:47 PMJeffrey | 2 comment(s) 5,845
Filed under: , ,
【茶包射手日記】TFS工作區資料夾更名導致狀態無效
當初為TFS版控建立工作區時沒想太多,取了TFSWorkspace當資料夾名稱。隨著接觸專案變多,跨越多個Project Collection,每個都需要自己的工作區,這才意識到原先的命名大有問題,工作區資料夾應加上Project Collection名稱才合理,之後再設工作區,IM-ERP Projection Collection的工作區資料夾就叫TFS-IM-ERP,以此類推。於是乎,磁碟上有一堆TFS-IM-***資料夾,和一個很突兀的TFSWorkspace,怎麼看都不順眼。 某一天終於忍不住...
Posted 02 August 2015 10:03 AMJeffrey | with no comments 2,624
Filed under:
TFS組建定義刪除重設導致工作區重複
有個TFS 組建定義 (Build Service)怪怪的,無法下載原始碼,幾經嘗試無解,索性刪掉再重設一次。(推薦 VS TFS Power Tools ,組建定義選單多出「Clone Definition」可以複製現有組建定義修改,不用從頭做起) 不料,新増相同原始碼來源的組建定義後,執行出現以下錯誤: Exception Message: Unable to create the workspace '9_1_VM-BLD-SVC12' due to a mapping conflict...
Posted 13 June 2015 01:54 PMJeffrey | with no comments 2,903
Filed under:
在TFS 2012 Build Service使用Robocopy實現自動部署
聲明:本文應用情境為TFS 2012,TFS 2013可在組建定義加掛PowerShell Script於建置前後執行,應比本文介紹的做法簡便。(請參考Franma的 文章 ) 使用TFS Build Service 成功建置專案 後,我們希望做到建置後自動上傳測試台或UAT驗收主機的目標。考慮過幾種做法,包含自訂建置流程範本、撰寫派送服務,最後決定將部署作業編寫放進csproj,工程最小,依賴性最低,較符合KISS原則。 依 之前 對MSBuild的粗淺研究,知道csproj本身就是個MSBuild設定檔...
Posted 22 April 2015 09:31 PMJeffrey | with no comments 4,290
Filed under:
TFS Build Service筆記
公司的專案版控由VSS換到TFS版已經很久了,自動組建(Build)專案的工作原本靠 CruiseControl.NET 搞定,一直沒研究如何改接TFS,但漸漸陷入危機,CCNET主機裝在Windows 2003,註定與.NET 4.5專案無緣,非升級不可。一不做二不休,索性棄守CCNET,另建TFS Build Service處理新專案。 第一次玩TFS Build Service,一路不斷踩到水坑跌進洞裡,耗費多時,終於Build第一個專案! 記錄斑斑血淚於後: 比較之下,安裝TFS Build...
Posted 15 April 2015 11:27 PMJeffrey | 4 comment(s) 11,790
Filed under:
NuGet Packages資料夾該不該加入TFS版控?
這年頭用Visual Studio寫程式已經離不開NuGet了!NuGet會在每個專案新増packages.config記錄已安裝Package及版本,在解決方案(.sln)檔所在資料夾則會建立packages保存各專案的NuGet Package DLL實體,放在解決方案層級的好處是方便Package檔案共享,專案A裝過NLog,專案B要安裝NLog時就不需要重新下載,直接參照packages裡的nlog.dll就好。 從NuGet 2.7起,Visual Studio預設啟用Automatic...
Posted 21 January 2015 08:33 PMJeffrey | 3 comment(s) 11,755
Filed under: ,
更多文章 下一頁 »

搜尋

Go

<September 2017>
SunMonTueWedThuFriSat
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication