2015-04-01 30 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 
相關問題