2014-02-19 23 views
1

我的工作由兩個部分組成一個Windows應用程序:
的藥劑,其在後臺運行。
一個帶有窗口的主應用程序,用於啓動/停止代理程序並對其進行配置。2部分Windows應用程序「窗口服務」 + GUI來配置它

我明白了什麼是我應該用一個「窗口服務」爲代理。
但我不知道這應該如何打包? (我能有這兩個部分在同一個.exe文件?)
以及如何代理和主應用程序可以溝通(我應該使用一個共享的文件?可我的經紀人有一個私人文件夾中的工作嗎?)

我在尋找一些建築基本上建議

回答

1

你需要有分離.exe文件,一個是服務,一個用於Windows應用程序。你可以在Visual Studio中打包這兩個獨立的MSI,這裏的好處是,如果你需要移動服務(無論出於何種原因),那麼你也不會打包Windows應用程序,並將它留在你安裝服務的地方。

有你可以讓他們沒有得到大量複雜不同的交際手段。您可以按照您的建議從文本文件中讀取數據,但這可能會導致鎖定問題。當我不得不做類似的事情時,我在SQL(或任何想要的品牌的數據庫)中創建了一個簡單的數據庫,並讓Windows應用程序向表中插入/更新配置選項,然後該服務讀取表以獲取其設置。

+0

謝謝MattR。然而,如果它分成兩個文件,你怎麼分發這個應用? (它們不能單獨運行) –

+0

您可以在一個安裝部署兩個EXE/MSI –

+0

@SimonWatiau可以單獨或作爲米蘭拉瓦爾提到你既可以從一個單一的MSI(如有必要,但我接着說部署安裝它們即使您不需要它,也總是安裝Windows應用程序)。使用SQL的好處是您可以在不同的機器上安裝應用程序和服務。 – MattR

2

將代理作爲服務運行可能是最佳途徑。它將在沒有任何人需要登錄的情況下運行,並且Windows爲服務提供廣泛的監視支持。您可以使用sc命令來安裝,啓動和停止服務,並且如果您擁有適當的權限,它甚至支持在其他計算機上控制服務。

爲了讓你的GUI與它溝通,你可以看看使用WCF。它將允許你定義與C#類的服務交互,並且可以節省你不必擔心檢查共享目錄或查看共享文件等。這種方法還可以很容易地同時支持多個客戶端,同時像共享文件夾方法會使這很困難。

相關問題