最近由於工作的關係 必須讓程式能在XP HOME版本上執行
因元件缺少或.NET Framework或系統設定的不同 還吃了不少苦頭
花了一點時間解決後,程式已能順利運作。
將問題點與解法分述如下:
1. 問題:taskkill.exe 不存在 調用時會發生錯誤
說明:在windows/system32/下有許多工具 其中將程式關閉的工具taskkill.exe 在Home版中不存在
解法:將其它XP 專業版的 taskkill.exe 複製一份到該電腦下 ~解決~
2. 問題:程式使用域名,該電腦無法解析域名 (
說明:XP Home版是無法加網域的,導至在使用域名解析DNS時無法解析域名
域名就是網站的英文名字 對應 IP (例如:www.pig.com 116.32.4.113)
這台電腦沒辦法認得www.pig.com 就是 116.32.4.113 當然就連不到囉!
解法:在C:\Windows\system32\drivers\etc 下面有一個 host 檔案
用筆記本打開後 打入 www.pig.com 116.32.4.113 存檔 就可以囉!(這裡就是DNS本機對照區)
3. 問題:.NET Framework太舊
說明:微軟windows的程式 大多使用微軟在.net framework裡面寫好的功能為基礎,
在開發程式時使用.net 2.0的功能,但該電腦只有.net 1.1 所以跑程式會發生 功能在那裡?的問題
解法:就是上微軟下載~安裝~ 就解決了
4. 問題:莫名的錯誤
說明:經除錯發現,程式在XP HOME版裡 做一些動作時,被信任的程式較低,導至都會報錯而關閉。
解法:*重要* 在class前加上
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")]
意思就是~完全相信我吧"FullTrust"~解決~
結論:基本上上面的動作完成後,問題就解決了。
整體來說,微軟向前兼容性真的不是很好,像word 2003 跟 2007 就有這樣的感覺
另外補充一個好用的東西給需要的人:
@ 欺騙系統 將 XP HOME 改為 XP Professional 請follow下面:
1. 輸入 regedit.exe 開啟註冊表
2. 在HLM/SYSTEM/Controlset002/Control/ProductOp 下
3. delete ProduteSute
4. add Brand (Dword值) 給值 0
5. 重開機按 F8 -> 還原之前版本
以上邏輯就是 欺騙系統讓重開機時執行備份的鍵值 而讓系統誤認為自已是XP Professional
這招主要是用在加入網域(公司),只要誤認後就能加網域 ( 功能本來就有,只是Home不顯示 )
前題:該電腦不適合重灌者。(如果能重灌就重灌吧!)