在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