.Net | The Will Will Web

The Will Will Web

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

如何將自訂參數傳入 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 的時候發生錯誤。

... 繼續閱讀 ...

介紹好用元件:Smart Thread Pool

採用 .Net Framework 內建的 ThreadPool 雖然也不錯用,但若真的實際用來開發時,就會發現有許多使用情境會導致程式碼過於複雜、不容易閱讀。最近發現 Smart Thread Pool 似乎蠻不錯用的,如果你的程式有多份工作需要同步執行,而又不考慮程式執行的先後順序時,是可以考慮使用 Smart Thread Pool 來開發多執行緒程式。

... 繼續閱讀 ...

以 C# 撰寫多執行緒 (Multi-threading) 相關學習資源整理

為了讓應用程式執行的更有效率,我們通常會採用 非同步程式設計模式 ( Asynchronous Programming Design Patterns ) 或 多執行緒處理 ( Managed Threading ) 的方式進行開發,尤其是多執行緒程式設計一直是許多程式設計師不敢碰或沒機會碰到的技術,我們最近就有個案子(非 Web 專案)就需要用到多執行緒進行開發,以確保程式的執行效能能夠符合客戶需求,以下我列出一些之前整理收集的參考資料,供初學者學習研究之用。

... 繼續閱讀 ...

Entity Framework 快速上手與學習資源整理

Entity Framework 的中文學習資源的確蠻少的,也許這門技術還太新,所以真的很少人在用,因此要學會 Entity Framework 也可能需要花不少精神,我個人對 Entity Framework 還還算新手上路的階段而已,學習的過程中也發現了一些快速上手的訣竅,也許可以讓新手不要那麼恐懼新技術。

... 繼續閱讀 ...

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

雖然 Windows Setup Project 安裝專案很好用,也可以自訂使用者介面,但限制頗多,只要自訂的使用者介面多一些條件就沒辦法客製化了,所以我們打算改用 NSIS 進行安裝過程的介面自訂,最後再將透過 UI 介面取得的參數傳入 Installer 類別中,並利用 C# 撰寫的程式碼幫我們完成 Post-Install 的動作執行,例如安裝 IIS 站台、建立資料庫、建立使用者或群組、... 等。

... 繼續閱讀 ...

使用超高效率的 NTrace 套件追蹤 .NET 程式執行效能與除錯

上週我親自跑去基隆處理一個程式問題,由於當場的環境缺乏檢測工具,且我們之前的程式 ( Windows 服務 ) 並沒有寫很多追蹤(Trace)的程式碼,只有將一些摘要資訊寫入 EventLog,導致在當場花了許多時間,而且最後還是沒有抓出問題,白白浪費了一個下午。

... 繼續閱讀 ...