作者Fadis (...)
看板C_Sharp
標題[問題] 以C#應用程式註冊組件和建立型別程式庫
時間Fri Jun 13 11:30:34 2008
各位前輩好,
小弟在以AP註冊組件和建立型別程式庫時遇到些問題,
求教版上各位前輩,還請各位不另指教
在XP的命令提示字元下,執行以下兩行是OK的
regasm xxxDll所在路徑 /tlb:xxxDll.tlb
gacutil /i xxxDll所在路徑
寫成應用程式在XP執行也是能正常運作註冊
System.Diagnostics.Process.Start(
@"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe",
"xxxDll.dll所在路徑 /tlb:xxxDll.tlb");
System.Diagnostics.Process.Start("gacutil.exe", "/i xxxDll.dll所在路徑");
但在Vista的環境中,直接執行註冊的指令會因權限問題被阻擋,
所以加上runas的指令指定執行權限,不知道是否語法有錯?並沒有註冊成功
runas /user:Administrator帳號 "regasm xxxDll所在路徑 /tlb:xxxDll.tlb"
runas /user:Administrator帳號 "gacutil /i xxxDll所在路徑"
剛剛試了一下,在命令提示字元按右鍵,以系統管理員身份執行,
再執行和在XP底下一樣的cmd是可以正確work的
regasm xxxDll所在路徑 /tlb:xxxDll.tlb
gacutil /i xxxDll所在路徑
想請教各位若要使用Process.Start來撰寫,
該如何下指令呢?
※ 編輯: Fadis 來自: 60.250.192.34 (06/13 14:23)
※ 編輯: Fadis 來自: 60.250.192.34 (06/13 15:05)
推 deuter:UAC elevation應該沒辦法用 Process.Start 做 06/14 11:59
→ deuter:你必須要做成UAC app才可以 06/14 11:59