在.NET Win控制檯應用程序中,我想訪問App.config文件,其位置與控制檯應用程序二進制文件不同。例如,C:\ bin \ Text.exe如何從C:\ Test.exe.config中獲取其設置?在與二進制文件不同的位置訪問App.config
4
A
回答
11
using System.Configuration;
Configuration config =
ConfigurationManager.OpenExeConfiguration("C:\Test.exe");
然後,您可以訪問應用程序設置,連接字符串等等。這當然假定配置文件格式正確,並且您的應用程序具有對目錄的讀取權限。注意路徑是不是「C:\ Test.exe.config」該方法查找與您指定的文件關聯的配置文件。如果你指定「C:\ Test.exe.config」,它會查找「C:\ Test.exe.config.config」有點跛腳,但我可以理解。
+1
有一個問題用這種方法是將文件「C:\將Test.exe」必須存在,即使它不是有效的可執行文件。 – 2008-10-06 14:47:26
5
使用以下(請記住,包括System.Configuration組裝)
ConfigurationManager.OpenExeConfiguration(exePath)
2
您可以通過創建一個新的應用程序域設置:
AppDomainSetup domainSetup = new AppDomainSetup();
domainSetup.ConfigurationFile = fileLocation;
AppDomain add = AppDomain.CreateDomain("myNewAppDomain", securityInfo, domainSetup);
6
看樣子,你可以使用AppDomain.SetData
方法來實現這一目標。該文檔指出:
您不能使用此方法插入或修改系統條目。
無論如何,這樣做似乎工作。 AppDomain.GetData
方法的文檔列出了可用的系統條目,感興趣的是"APP_CONFIG_FILE"
條目。
如果我們在使用任何應用程序設置之前設置了"APP_CONFIG_FILE"
,我們可以修改從哪裏加載app.config
。例如:
public class Program
{
public static void Main()
{
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", @"C:\Temp\test.config");
//...
}
}
相關問題
- 1. 將索引移動到二進制文件的不同位置
- 2. App.config文件的位置
- 3. 訪問速度,perl二進制散列文件與mySQL
- 4. StringIO與二進制文件?
- 5. 鏈接問題雖然構建不同的二進制文件
- 6. 在二進制文件中的特定位置跳轉
- 7. 在GCC調試二進制文件中的源代碼位置
- 8. CMake VS不同的二進制文件對於不同的配置
- 9. C二進制文件與ascii文件
- 10. 從二進制文件(java)中設置位置讀取
- 11. 如何在.NET 4中訪問對象二進制文件?
- 12. 二進制文件位操作
- 13. 巨大的二進制文件與objcopy
- 14. WCF與TCP上的二進制文件
- 15. 如何訪問文件的二進制數據?
- 16. 如何訪問gradle內部的二進制文件
- 17. 二進制文件中的問題
- 18. 基於二進制格式文檔訪問特定的二進制信息
- 19. ELF二進制文件在不同的linux分佈
- 20. 在Umbraco 4.5中使用不同版本的二進制文件
- 21. Cmake:當位置不存在時,使用add_custom_command將二進制文件複製到特定位置失敗
- 22. TestRunConfig不復制App.config文件
- 23. 嘗試將二進制文件部署到已存儲其他二進制文件的位置現有二進制文件
- 24. 啓動相同的.exe文件與不同的app.config的
- 25. Git對* .reg文件說「二進制文件a ...和b ...不同」
- 26. C++,同時讀寫二進制文件
- 27. 許多二進制文件同步
- 28. GCC編譯的二進制文件給予 「不能執行二進制文件」
- 29. g ++編譯的二進制文件給「不能執行二進制文件」
- 30. C二進制文件讀取緩衝區Decleration位置差
相關問題:http://stackoverflow.com/questions/6150644/change-default-app-config-at-runtime – CodeNaked 2013-08-13 20:01:20