2013年5月24日 星期五

安裝 .NET Framework 4 時出現 Error HRESULT 0xc8000222 解決方法

從 Microsoft Download Center 下載 .NET Framework 4 安裝時,出現「Error HRESULT 0xc8000222」錯誤訊息。(下載連結)

解決方法:

  1. 開啟命令提式字元,鍵入 net stop WuAuServ 並按下 Enter,此指令是關閉 Windows Update 功能。
  2. 在 C:\Windows 目錄下尋找 SoftwareDistribution 資料夾,將它命名為其他名稱,例如 SD.old。
  3. 再度開啟命令提示字元,鍵入 net start WuAuServ 並按下 Enter,來開啟 Windows Update 功能。
  4. 再次嘗試安裝 .NET Framework 4

如果還是不行的話,可以嘗試在第 2 步驟後就安裝 .NET Framework 4。

2014/07/23更新
根據熱心匿名網友分享,使用命令提示字元時,要使用系統管理員身分執行才有權限關閉 Windows Update,遇到問題的朋友不妨試試看。

本文參考 How to fix Failed install Code Error HRESULT 0xc8000222 .NET Framework 4.0

2013年5月5日 星期日

C# 跨 Thread 存取 UI

在 Form 裡加下面這行就對了!但不是好方法,會有 lock 問題,急忙情況可先使用一下。

CheckForIllegalCrossThreadCalls = false;

2013年5月1日 星期三

C# SqlCeConnection 無法使用 ? 沒有 System.Data.SqlServerCe namespace ?

在 C# 中要對 SQL Server Comapact Edition 進行連線,需要使用 SqlCeConnection 來幫忙,參考 MSDN『SqlCeConnection 類別』內容說明,SqlCeConnection 存在 System.Data.SqlServerCe 該 namespace 下

但直接 using 會顯示『命名空間 'System.Data' 中沒有型別或命名空間名稱 'SqlServerCe' (您是否遺漏了組件參考?)』


看來似乎是沒有預設參考這東西,需要自行加入參考,據 MSDN 說明文件指出,該組件存在 system.data.sqlserverce.dll,其路徑為 『C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Desktop\System.Data.SqlServerCe.dll』,視版本,4.0 存在『C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dll』,只要將這個 DLL 加入參考就可以正常使用了。

32位元版則在『C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v3.5\Desktop\System.Data.SqlServerCe.dll』與『C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dll』

若找不到以上所述路徑,代表你的電腦沒有裝 SQLCE 啦!
請至 Microsoft Download Center 下載。3.5版4.0版



相關參考
SQL Server CE 4.0 deployment issue--which files are necessary?


2013年4月15日 星期一

Android Virtual Device 無法開啟

在 Android Virtual Device Manager 選擇虛擬機按下 Start 後出現以下錯誤,無法開啟虛擬機

Starting emulator for AVD 'AVDNAME'
PANIC: Could not open: AVDNAME

原因是因為 Android SDK 放置安裝在 C 碟以外的地方 以我來說,放在 D 碟就出現這樣的錯誤,這時候查看 D 碟目錄下,會發現有一個 .android,代表 SDK 是放在 D 碟以下路徑沒錯,只要在系統環境變數加入一個變數名稱 ANDROID_SDK_HOME,變數值 D:\ 即可。如下圖所示。

 

2013年4月12日 星期五

Telnet C# - 簡單好用的 C# Telnet lib

Telnet C# 是一款 C# 語言上用來模擬執行 Telnet 的 Open Source Library,可以設定對指定的 IP、Port連線,並可在成功連線後,等待指定的訊息出現以及送出相對應的訊息,可以說是一款相當簡單好用的 Lib。程式最後一次更新的日期是 2011 年 7 月,算是不會太舊的 Lib,目前使用上沒有什麼問題。

Lib 放置於 CodePlex 網站上,官方網站 Telnet C#


使用範例如下 (節錄自 Telnet C# > Documentation > Example)

Terminal tn = new Terminal("giga", 23, 10, 80, 40); // hostname, port, timeout [s], width, height

tn.Connect(); // physical connection
do 
{
    f = tn.WaitForString("Login");
    if (f==null) 
        break; // this little clumsy line is better to watch in the debugger
    Console.WriteLine(tn.VirtualScreen.Hardcopy().TrimEnd());
    tn.SendResponse("telnet", true); // send username
    f = tn.WaitForString("Password");
    if (f==null) 
        break;
    Console.WriteLine(tn.VirtualScreen.Hardcopy().TrimEnd());
    tn.SendResponse("telnet", true); // send password 
    f = tn.WaitForString(">");
        break;
    tn.SendResponse("df", true); // send Shell command
    if (tn.WaitForChangedScreen())
        Console.WriteLine(tn.VirtualScreen.Hardcopy().TrimEnd());
} while (false);
tn.Close(); // physically close on TcpClient

使用 Terminal 建構子參數來設定 Hostname 或 IP,以及 Port 、 Timeout …等等。

Terminal.WariForString(string) 用於等待指定的 string 出現,會一直等待直至 Timeout,若沒出現指定的 string 則會回傳 null。

Terminal.SendResponse(string, bool) 用於送出 string,並可設定是否要送出換行(Enter)訊息。

2013年3月31日 星期日

Windows 7 環境變數 TEMP、TMP 預設值

使用者變數 TEMP、TMP
%USERPROFILE%\AppData\Local\Temp
系統變數 TEMP、TMP
%SystemRoot%\TEMP

Unity 開啟錯誤 Creating directory












Creating directory
Creating directory Temp faled. Please ensure there is
enough disk space and you have permission setup
correctly.

Unity project 存在路徑含有中文會造成上述錯誤。路徑似乎只能有英文。