2012-06-25 51 views
2

也許這是不可能的,由於安全隱患... 我有一個部署包在Visual Studio中創建一個Win窗體。應用程序在本地引用app.config文件,並允許用戶通過應用程序更改其中的設置。 當我部署應用程序並嘗試保存我所做的更改時,Windows說「權限被拒絕」。是否有一個命令,我可以作爲安裝的一部分運行,將給予我的app.config文件「Everyone」安全權限,從而允許我的應用程序進行編輯?Visual Studio部署包更改文件權限

謝謝。

+0

哪裏是你的應用程序.config文件位於與可執行文件相同的目錄中? – BryanJ

+0

是的,它與可執行文件在同一個文件夾中。 – Adrian

回答

2

如果你希望能夠寫app.config文件您需要將其移至共享應用程序數據目錄並修改您的應用程序以從此處讀取配置信息。 Win7上,例如:

C:\ ProgramData \ YourCompany \ YourApp \的app.config

在C#中,得到普遍的應用程序數據目錄:

// using System.IO; 
string appDataDir = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData); 
+0

謝謝。這個工作很好:) – Adrian

1

您可能能夠使用自定義操作在您的安裝,以便運行icacls充分獲得大家:

icacls {Path to App.config} /grant Everyone:(F)

+0

因此,我將不得不添加一個類,將此代碼添加到它,然後將該輸出添加爲安裝程序中的自定義操作? 作爲安裝的一部分,是否有一種方法可以在不編寫類的情況下運行該命令? – Adrian

+0

對,如果你需要一個例子,你可以看看[這裏](http://support.microsoft.com/KB/827018)。你的班級有一行代碼,但我不知道是否將安裝程序集添加到你的解決方案將會是一件大事。我敢肯定,您可以直接從自定義操作運行icacls,但只能從InstallShield等更高級的安裝程序解決方案運行。 – ScottieMc