我的任務是使用瀏覽器應用程序編寫一個Silverlight安裝程序。我需要。Silverlight(SLOOB)即使在完全信任的情況下也能啓動一個過程嗎?
- 獲取版本關閉本地EXE
- 檢查Web服務,看看它是最新版本
- 下載
- 解壓ZIP
- 覆蓋舊的EXE一個zip如果不是
- 啓動EXE
這個安裝程序是.NET編寫的WinForms現在卜.NET框架是人們下載的障礙。
推薦的解決方案是使用SLOOB,但我不確定如何分配完全信任。如果我分配完全信任,我可以開始一個過程。
感謝
我的任務是使用瀏覽器應用程序編寫一個Silverlight安裝程序。我需要。Silverlight(SLOOB)即使在完全信任的情況下也能啓動一個過程嗎?
這個安裝程序是.NET編寫的WinForms現在卜.NET框架是人們下載的障礙。
推薦的解決方案是使用SLOOB,但我不確定如何分配完全信任。如果我分配完全信任,我可以開始一個過程。
感謝
展望這一點,我懷疑你將不得不通過創建COM接口使用WMI的過程。在這一天結束時,這使得這是一個非常困難的選擇,並且由於許多原因(WMI被禁用或被保護,用戶不會完全信任等等)而很容易失敗。我懷疑你會好得多關閉創建一個.msi部署包或類似的東西,如果有必要,可以出去下載框架。有很多可用的部署模型,幾乎所有的模型都比這個更優越。
這就是說,如果你要做到這一點:
要獲得COM對象,你將要使用的AutomationFactory.CreateObject(...)
API。 Tim Heuer provides a sample here.
要實際執行WMI腳本,您需要創建WbemScripting.SWbemLocator
對象作爲根。從那裏,使用ConnectServer
方法在命名機器上獲得wmi服務。然後,您可以詢問Win32_Process
模塊以創建新的進程。
編輯:我花了一點時間在這工作,甚至在我的本地計算機上,我遇到安全問題。正確的代碼將類似於:
dynamic locatorService = AutomationFactory.CreateObject("WbemScripting.SWbemLocator");
dynamic wmiService = locatorService.ConnectServer("winmgmts:{impersonationLevel=impersonate,authentationLevel=Pkt}//./root/cimv2");
dynamic process = wmiService.Get("Win32_Process");
dynamic createParameters = process.Methods_["Create"].InParameters.SpawnInstance_;
createParameters.CommandLine = "cmd.exe";
wmiService.ExecMethod("Win32_Process", "Create", createParameters);
Silverlight 4中都會有這樣的事情支持:http://timheuer.com/blog/archive/2010/03/15/whats-new-in-silverlight-4-rc-mix10.aspx#sllauncher
從我看到的,這是從CD或類似的東西安裝Silverlight的OOB應用程序,是否正確?有什麼辦法可以將它用作完整應用程序安裝的引導程序? – 2010-03-23 13:14:45
安裝的應用程序是一個.NET應用程序?如果是這樣,.NET框架以什麼方式成爲安裝程序的障礙? – AnthonyWJones 2010-03-21 09:22:09