2015-04-01 24 views
0

我有一个由Winform和Windows服务组成的项目。安装时,它们都存在于相同的通用文件夹中,我想让Winform能够在常见的文件夹中设置连接字符串,密码,日志文件路径等设置这两个应用程序共享的xml文件。我会处理所有的加密和解密,这不是我的问题。使用Winforms应用程序来配置Windows服务

这个问题似乎是在安装应用程序时,在WinForm是无法更新文件,我得到一个拒绝访问的错误,虽然我是一个完整的域管理员与在桌面的绝对权利。

问题是,如何让Winform在Winform应用程序和它希望配置的Windows服务之间定义一个公共连接字符串?

我不想依赖于machine.config,并希望我自己的XML文件能够保存所有的配置选项。必须有一些简单的东西,我错过了一个简单的解决方案?

+0

不是一个答案,而是解决 - 你有没有考虑过使用注册表而不是xml文件? – 2015-04-01 14:58:24

回答

0

由于微软似乎已经转移到application.config路由并且真正开始锁定注册表,因此注册表在过去一直引起头痛。再加上整个WOW6432分支,它变得更加难以使用。

我目前的解决方案似乎运行良好,只要它们具有相同的公司名称和产品名称,它就具有以下功能指向相同的位置,无论是从服务还是Winform调用。然后我把我自己的XML配置文件放在那个位置,一切都很好。

' ********************************************************************************************************** 
' Returns Commong Data Folder 
' If folder does not exist, it attempts to create it 
' ********************************************************************************************************** 
Public Function GetCommonDataFolder(ByRef ErrorMessage As String) As String 
    Dim Result As String = "" 

    Result = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) & "\" & My.Application.Info.CompanyName & "\" & My.Application.Info.ProductName 

    Try 
     Directory.CreateDirectory(Result) 
    Catch ex As Exception 
     ErrorMessage = "An exception occurred creating directory: " & Result & ": " & ex.Message 
    End Try 

    Return Result 
End Function 
相关问题