2017-09-21 116 views
0

我試圖從Visual Studio項目安裝程序中的文本框檢索數據,但我只是保持失敗。我不知道如何檢索數據,比如說EDITA2字段,似乎互聯網目前還沒有答案。c#Visual Studio項目安裝程序從文本框中檢索數據

我正在談論的這個項目是一個windows服務,你用上面提到的安裝程序安裝。在安裝程序中,您可以配置服務。我想獲取服務器IP和計算機名稱等數據,並且希望稍後在運行的服務中使用此數據。談到服務,安裝後是否有可能自動啓動服務?

總結一下,我想從安裝程序寫入數據到一個文本文件並在安裝過程完成後啓動一個批處理文件。你能幫我嗎?

在此先感謝您的答案。

+0

看看這個答案在這裏支持盧卡斯的答案和我下面的評論。 https://開頭計算器。com/questions/24484478/run-execommand-in-customaction-as-administrator-mode-in-wix-installer –

回答

1
+0

你正處於正確的道路上,OP將需要創建一個自定義操作。在幾個月前,我已經使用Wix Installers http://wixtoolset.org/完成了這項工作,並且它相對簡單易行。 –

0

這是文件N代表的文本框的用戶界面對話框:

https://msdn.microsoft.com/en-us/library/e04k6f53(v=vs.100).aspx

標識符EDITA1(和其他人)是你可以在(例如)自定義操作後使用屬性名。如果不知道你可能想到的是什麼樣的自定義操作,很難說出你如何使用它。通常,將它指定爲自定義操作的參數爲[EDITA1]將導致它被解析爲其實際值。但是,如果您只是想將值存儲在註冊表中,您將創建一個包含值[EDITA1]的註冊表項。

要在Visual Studio設置中啓動安裝服務並使用安裝程序類的服務,您需要覆蓋Install方法,調用base.Install(),然後添加代碼以啓動服務。同樣,在卸載或升級時,您可以在調用base.Uninstall()之前覆蓋Uninstall方法並停止服務。

這些職位有一些文本框的例子:

Overriding "Textboxes" dialog fields from the command line in MSI installer (Visual Studio 2010 Web Setup)

Setup Project: user enters a value then store it in a text file or database

Visual Studio的設置不符合服務和UI非常有用的。無法驗證用戶在輸入時輸入的內容 - 如果您使用自定義操作對其進行驗證,則會在安裝結束時進行驗證,整個安裝將失敗並回滾。 Windows Installer具有內置支持來啓動/停止/刪除/安裝服務,但VS設置不使用它。如果這是你經常做的事情,考慮另一種工具可能是有用的,並且這可能會有一個學習曲線,但最終的MSI將更加可靠和易於使用。

+0

嗨,感謝您的回覆,併爲我的遲到感到遺憾! 我想將用戶放入編輯框的數據寫入配置文件(.txt)。我怎樣才能做到這一點? – Speedbird

+0

你可以請給一個litte代碼示例爲了向我展示如何在我的C#代碼中管理這個?除此之外,我找不到任何關於它的事情,但這對我沒有任何幫助:它們沒有放在任何地方。如果你想保存它們,你需要自己做。只需在安裝項目的IDE中創建註冊表項即可,其中值屬於方括號中的屬性名稱,例如[EDITA1] – Speedbird

相關問題