在app.config添加到ServiceConsole的項目爲紐帶(添加現有項目,導航到它,然後選擇「添加爲鏈接」,從「添加」按鈕,拆分)。然後,您需要在鏈接的構建屬性中設置它爲「內容」和「始終複製」。最後,進入「發佈」選項卡的「文件」對話框,並確保它在那裏列出。您可能需要「顯示所有文件」才能看到它。
關於第二個問題:我沒有寫一個應用程序的設置文件,因爲新寫入的設置是每個用戶的傾向。他們被埋在用戶個人資料目錄中的隱藏文件夾之一中。我建議使用一個固定的位置(如CSIDL_COMMON_DOCUMENTS)使用此代碼:
Private Declare Function SHGetSpecialFolderPath Lib "shell32.dll" Alias "SHGetSpecialFolderPathA" _
(ByVal hwndOwner As IntPtr, <Out()> ByVal lpszPath As StringBuilder, ByVal nFolder As Integer, ByVal fCreate As Boolean) As Boolean
Private Const CSIDL_COMMON_DOCUMENTS As Integer = &H2E
<snip>
Dim lpszPath As New StringBuilder(260)
If SHGetSpecialFolderPath(IntPtr.Zero, lpszPath, CSIDL_COMMON_DOCUMENTS, True) Then
_sharedDocsDir = lpszPath.ToString()
Else
Throw New InvalidDataException("Couldn't get working directory root.")
End If
要回答你的最後一個問題,我覺得它工作正常,我的理由是,我們使用System.Configuration,而不是設計師生成的代碼。你可能會做的是把你的設置類拖到第三個程序集(第四個?),並且只是通過這兩個項目引用該程序集。它可能會比鏈接app.config更好。
Lenard,看我更新的答案。 – 2009-08-13 14:07:39