2013-09-30 71 views
0

背景: 我使用Visual Studio安裝項目將C#應用程序之一部署到客戶端Windows Server。 安裝應用程序時,我需要在服務器中設置計劃任務 爲此,我在安裝項目中使用了自定義操作功能。我所做的是創建一個帶有輸入欄和「確定」按鈕的窗體,一旦用戶輸入值並點擊「確定」按鈕,任務將被創建。我在InstallCommit步驟中添加了此自定義任務Custom ActionC#自定義操作窗體窗體聚焦問題

問題 :一切正常,但是當從顯示了創建的窗口,它失去了焦點,甚至我以前showDialog方法來顯示形式。因此,總是主設置窗口將激活,用戶不會在後臺看到彈出窗體(請參閱附加圖像)。但是,我可以單擊彈出窗口並將其激活。我也嘗試用SetActiveWindow方法,但目前爲止沒有很好的結果。

簡單的我需要的是激活彈出窗口,直到用戶操作(默認showDialog行爲)。所以我在這裏尋找任何幫助。 enter image description here

回答

1

如果您想在MSI部署期間使用自定義UI獲取用戶輸入,最好的方法是創建.wid擴展文件。這是您在MSI安裝期間看到的UI文件的類型(,您可以在其中選擇安裝路徑等)。雖然Visual Studio沒有創建這些UI文件的功能,但您可以使用Microsoft工具來創建這些文件。最好的工具之一是Orac

一旦你創建UI文件,你必須把C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\Deployment\VsdDialogs\1033下的文件(這其中MSI從挑選默認的UI文件)

後您應該能夠選擇您的自定義用戶界面,並在安裝週期的任何階段(安裝,安裝,後安裝等)注入它。然後您可以將用戶輸入的值作爲安裝程序類的參數傳遞給文本字段。然後,您可以使用上下文參數讀取安裝程序類中的值。

string value = Context.Parameters["ParameterName"]; 
+0

其實我已經經歷了你之前提到的方法。但我的問題是,如果我需要驗證用戶輸入,使用Orca很難配置它。我試圖找到任何有用的資源,但我不能。這就是爲什麼我嘗試以上方法。如果您知道任何與C#相關的示例代碼,請告訴我。謝謝 –

+0

您仍然可以對用戶輸入的值使用我的gievn方法進行驗證,您可以驗證它並顯示來自安裝程序類的消息,如果驗證失敗,也可以中止安裝。 – Kurubaran

+0

你能幫我參考一下嗎?因爲我面臨缺乏信息。 –