使用Winforms应用程序配置Windows服务

使用Winforms应用程序配置Windows服务,winforms,windows-services,Winforms,Windows Services,我有一个由Winform和Windows服务组成的项目。安装后,它们都存在于相同的公用文件夹c:\program files中\ 我希望Winform能够在两个应用程序共享的公共xml文件中设置连接字符串、密码、日志文件路径等设置。我将处理所有的加密和解密,所以这不是我的问题 问题似乎是,当安装应用程序时,Winform无法更新文件,并且我收到一个拒绝访问错误,尽管我是一个拥有绝对桌面权限的完整域管理员 问题是,如何允许Winform在Winform应用程序和它希望配置的Windows服务之间定

我有一个由Winform和Windows服务组成的项目。安装后,它们都存在于相同的公用文件夹c:\program files中\

我希望Winform能够在两个应用程序共享的公共xml文件中设置连接字符串、密码、日志文件路径等设置。我将处理所有的加密和解密,所以这不是我的问题

问题似乎是,当安装应用程序时,Winform无法更新文件,并且我收到一个拒绝访问错误,尽管我是一个拥有绝对桌面权限的完整域管理员

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


我不想依赖machine.config,而是希望自己的XML文件包含所有配置选项。我一定缺少了一些简单的东西,一个简单的解决方案?

由于Microsoft似乎已经转向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

这不是一个答案,而是一个解决办法——您是否考虑过使用注册表而不是xml文件?