跳到主要內容

發表文章

Windows 2003 x64無法安裝之處理

又一篇個人筆記,最近實在沒有生產力呀... 今天用一台桌上型商用PC灌Windows 2003 Server x64,一直灌不起來,調整BIOS裏各種參數均無效。Windows 2003 Server x64安裝程式無法進入安裝畫面,load driver後就 BSoD ,連死在哪個.sys都沒有。這已經是我用nLite做出的整合光碟,沒有更新的driver了。 原本用兩顆HD做Raid 1,但似乎有嚴重的問題,不但開機光碟進不去,連TrueImage都只能進Safe Mode,調整回AHCI模式才能使用TrueImage的Full Mode。但是Windows 2003 Server x64安裝程式仍舊是無法進入安裝畫面,幸好有以前同機型的tib備份檔,就使用TrueImage還原到AHCI模式的硬碟。 這件事告訴我們:以後要灌Windows Server,還是買台真正Server吧。(除非灌Linux/FreeBSD)

寫.Net程式時慎選專案名稱

小時候我們寫程式時,老師有說過不要亂取變數名稱(誤,我小時候沒上過電腦課),有許多保留字像class等不要用。 今天遇到的非常鳥的錯誤,試著寫一個行事曆,於是把專案名字叫 Calendar ,變數名稱與Class名稱我都很小心地避開Calendar這種有內建Class的字,但是事情就這麼發生了... 會用Visual Studio寫Asp.net的朋友都知道,Visual Studio會 用專案名稱當做namespace ,所以編譯時都過了,在有一個叫Site1.master的MasterPage情況下,執行時出現下面的錯誤訊息。 編譯器錯誤訊息: CS0426: 型別 'System.Web.UI.WebControls.Calendar' 中沒有型別名稱 'Site1' 這就是在下喜歡Java的命名方式,namespace都會叫com.foo.xxx。唉,我果然不適合寫code呀...

Visual Studio連線到 SQL Server Express 2008問題

故事背景: 某個無聊網管在公司把自己工作用PC灌了Ubuntu玩到膩之後,今年開始裝Windows 7 beta 64 bit,前陣子更新到Windows 7 RC build 7100時發現 SQL Express 2008是32bit,於是移掉改裝為SQL Exress 2008 64bit,結果遇到 連線到 SQL Server 檔案 (mdf) 都需要 SQL Server Express 2005,才能正確運作。 請確認從 URL 下載的元件的安裝: http://go.microsoft.com/fwlink/?LinkId=49251 過程: 看 這裏 有官方解說,用白話解說如下: 老子不讓你用64bit啦,這是進階功能,要用的話拿小朋友來換。 是的,有patch但不能下載。 鳥毅不像VB超人的偶像 璉璉 有免費點數可用,只好摸摸鼻子換回32bit,結果遇到另一個問題: 由於無法啟動使用者執行個體的處理而無法產生SQL Server 的使用者執行個體。此連接將會關閉 ,幸好有解,在XP把 %USERPROFILE%\Local Settings\Application Data\Microsoft\Microsoft SQL Server Data\SQLEXPRESS 目錄刪除就可用,Vista/2008/Win7是在 %USERPROFILE%\AppData\Local\Microsoft\Microsoft SQL Server Data\SQLEXPRESS 。 正當終於用32 bit SQL Express 2008時,又看到 SQL Express 2008 x64 Integration with Visual Studio 2008 SP1 ,原來國外的高手找到方法( hotfixr )可以 直接下載patch 。可別忘了啟動Named Pipes呀! 結論: 64bit Windows之路真是辛苦,此時我真的希望微軟能夠學Mac把程式包成一個package直接用呀!

64bit SQLServer無法匯入Excel問題

同事遇到在64bit SQLServer無法在SQLServer直接匯入Excel檔的問題,原因是Jet Engine並沒有64bit版本。 事實上,MS Office並沒有64bit版本,所以Jet Engine也沒有64bit版本呀! 類似 http://www.eggheadcafe.com/software/aspnet/32766378/excel-import.aspx 的情形。 不過,如果選完整安裝的朋友,會在工具列看到「匯出和匯入資料(32位元)」,這個就是32bit版的DTS精靈,產生出來的SSIS封裝可以存在64bit SQLServer上,也可以直接執行。 所以會用Visual Studio寫SSIS封裝的朋友,就可以放心寫了。 什麼?要在Stored Procedure匯入Excel?請參考 How to call SSIS package from the stored procedure 參考資料: 64-bit Considerations for Integration Services how to call a stored procedure in SSIS

解開intel晶片組driver infinst_autol.exe的方法

又一篇個人筆記。 為了替優秀長官在VAIO Z上安裝Windows Server 2003,之前用 nLite 做的Windows Server 2003 整合 ich9 driver開機光碟已經不能用,所以只好再找driver來整合。 但是Intel現在已經更新 infinst_autol.exe 的做法,解開安裝後馬上又刪除原始檔,所以我只好輸入infinst_autol.exe /?看有什麼參數可用,最後用infinst_autol.exe -a -f2 C:\temp ,這樣會在C:\temp產生log檔,再從log找到安裝的暫存目錄,這時候就會發現暫存目錄並未刪除。若未加參數時,Log檔會在 C:\Intel\Logs\IntelChipSet.Log,裏面寫的暫存目錄是立即刪除,連安裝過程切換視窗都找不到。

列舉目錄下所有檔案的C# class

剛在噗浪上看到有人花了不少時間寫列舉目錄下所有檔案的class,記得當初鳥毅也在CodeProject上找了一會兒,以下是鳥毅改寫的Code(原始出處忘了留:P ),授權以原始出處為準(逃~) Update:我改寫的class似乎太像(十年前的)Java,請看回應laneser寫的版本,這才是.Net風格呀。 using System; using System.Collections; using System.IO; namespace tenyi.io { public class FileExplorer { public ArrayList FileList = new ArrayList(); public ArrayList extensionLists = null; private string myPath = null; private bool recursive = true; private DateTime lastDateTime = new DateTime(1, 1, 1); public DateTime LastDateTime { get { return lastDateTime; } } public FileExplorer(string path) { myPath = path; recursive = false; FileList = GetFiles(myPath); } public FileExplorer(string path, string filter) { myPath = path; recursive = false; FileList = GetFiles(myPath, filter); } public FileExplorer(string path, ArrayList extensions) { myPath = path; extensionLists = extensions; recursive = false; FileList = GetFiles(myPath); } public FileExplorer(string path, ArrayList extensions, string filter) { myPath = path; extensi...

Subversion不能merge時的處理

又是一篇個人筆記。 優秀主管帶領的優秀團隊在MCSD.Net Joseph兄的努力之下,目前已經進到coding階段,Joseph兄指導其他同仁把自己開發的模組放到branch避免干擾,但開始發現SVN令人詬病的merge問題。 由於處於開發初期,某些核心程式還不斷地更新,因此Joseph必須常更新trunk上的程式,而其他成員把trunk合併到自己的branch時常遇到問題。 以下為merge的標準步驟: 先commit自己的branch 再update自己的branch(這是因為TortoiseSVN的要求,不做不能merge) 把trunk合併到自己的branch 解決衝突 最後commit解決衝突的branch 必要時再把branch合併到trunk,方法如1~5。 講起來容易做起來難,尤其是遇到奇怪現象時需要靠經驗解決,有時候設定了svn:ignore的性質變動,會造成每次merge都有衝突,此時砍掉重練branch似乎比較快呀Orz 今天有兩位同事把TortoiseSVN從1.6.0升級到1.6.1後,合併時出現infinite depth的錯誤,個人猜測是.svn裏不知出什麼錯,也是砍掉重練才正常。 結論:終於知道為什麼gslin要把全公司的repository換成Git了。