The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

在 Setup 專案中開發自訂動作(Custom Actions)應注意的事

我在 Setup 專案的自訂動作(Custom Actions)裡經常會寫許多判斷,用以檢查安裝過程中一些必要的條件是否成立,例如資料庫是否可正常連線、適當的安裝參數是否有正常傳入、…等等。但是在檢查的過程中若發現條件不足時,正確的回應方式應該要使用 InstallException 類別丟出例外狀況,讓安裝程式進行復原(Rollback)動作,但是這個 InstallException 例外狀況的「發生點」也是挺重要的。

... 繼續閱讀 ...

使用 ThreadPool 時應注意預設同時執行的 Thread 數量

之前我們有個專案需要透過 Console Application (指令列程式) 解析上萬個檔案,而且每解析一個檔案就必須要啟動這個程式一次,為了縮短程式執行的時間,我們當時就採用 ThreadPool 技術進行開發,結果最近客戶購買了新主機,安裝了我們的程式後卻發現經常還沒跑完就死了,研究了好一番功夫才發現問題出在 .NET 2.0 預設的 Thread 數量變了。

... 繼續閱讀 ...

如何將自訂參數傳入 Installer 類別的 Install 方法 ( Part 2 )

若希望可以在透過 msiexec 進行靜默安裝時能夠傳入自訂的屬性(PROPERTY)到自訂動作(Custom Action)中,然後再透過自訂動作的 CustomActionData 屬性傳入實做自訂動作的 Installer 類別中,之前試過一次但不成功,還以為是 Msi 格式的限制,直到最近我終於找出方法與真正的限制所在了。

... 繼續閱讀 ...

如何對 [Windows 服務] 與 [安裝專案的自訂動作] 進行除錯

雖然 MSDN 的 HOW TO:偵錯 Windows 服務應用程式 文件有教如何除錯,但是這樣的除錯有個大缺點,就是有時後程式碼是在 OnStart 事件一開始的時候就發生問題的,有時後就會因為來不及 附加 (Attach) 程序導致無法除錯。另外,對於「安裝專案」內的「自訂動作」由於是在專案的 Installer 類別中執行的,所以要對「安裝專案」進行除錯也不太容易。我今天就來分享幾個很簡單又有效的除錯密技。

... 繼續閱讀 ...

解說幾個 EventLog 常用操作方法與重要觀念

最近在開發一些 Windows Service 程式,由於過程中修修改改的,所以藉此整理一下思緒,也順手開發出一套簡易的 EventLog 管理工具,可方便建立、刪除、查詢 EventSource 的相關資訊,也可以刪除 LogName 等資料,避免程式在寫入 EventLog 的時候發生錯誤。

... 繼續閱讀 ...

錯過 MIX09 了嗎?沒關係!全場錄影與 Slide 已開放下載

MIX 09 一年一度的 MIX 開發人員大會是我最期待的一場技術盛宴,雖然我沒機會親身到場參加,但是他們每次都會將所有課程錄影起來供所有人下載,真的十分貼心,最新、最夯的技術都在這裡,有興趣的人可以到  MIX Videos 網頁下載所有課程的錄影檔 ( 高畫質 ) 與簡報檔。

... 繼續閱讀 ...