2011-09-22 62 views
0

我有一個在Visual Studio 2010中構建的VB.NET解決方案。它由一個類項目,一個服務和一個安裝項目組成。我已經成功創建了一個安裝程序,並從安裝項目的「Release」目錄(在Visual Studio之外)運行安裝程序。它安裝了服務(與項目所在的機器相同),服務似乎運行良好。服務可執行文件安裝在c:\ program files(x86)\下的一個目錄中,以及它所依賴的一些DLL。VB.NET Windows服務的位置My.Settings - 設置

該服務(實際上我上面提到的類項目)使用My.Settings中的一些設置。據我所知,這些設置存儲在項目目錄中的app.config文件中,以及項目目錄下My Project目錄下的settings.settings文件中。

這些文件都不是由安裝程序安裝的。但服務只有在可以讀取設置的情況下才能運行。那麼我的服務從哪裏獲取這些設置?要檢查它是否仍然從VS項目目錄中讀取設置,我暫時重命名了該目錄,但這不會影響服務的正確操作。

+1

App.config被重命名爲<您的服務名稱> .exe.config。你在安裝文件夾中看到這個文件嗎? – alex

+0

@alex否我沒有看到這樣的配置文件。請參閱下面的答案。 – George

回答

0

在虛擬C店一看:\用戶\用戶名\ AppData的\本地\ VirtualStore \

0

,我發現自己的答案:類項目的設置存儲類項目的DLL文件中。所以在使用該服務(使用這個DLL)之後,它們不能被編輯。

+0

您的答案實際上是錯誤的 - 完全可以在serviceName.exe.config中設置可調整的設置 - 它們在重新啓動服務時生效 –

1

看這條道路。找到您的服務名稱,並向下導航,直到找到user.config C:\ Windows \ System32 \ config \ systemprofile \ AppData \ Local \ user.config只有您的服務已更新其他人將在exe中的設置。在服務安裝路徑上配置。

Protected Overrides Sub OnStart(ByVal args() As String) 
    My.Settings.TimerMsInterval = thisTimer.Interval 
    My.Settings.MoreMsgs = My.Settings.MoreMsgs 
    My.Settings.LastTime = My.Settings.LastTime 
    My.Settings.Save() 
EventLog.WriteEntry("Startup Parameters: TimerMsInterval: LastTime: MoreMsgs " & thisTimer.Interval.ToString & " : " & My.Settings.LastTime & " : " & My.Settings.MoreMsgs) 
End Sub