有没有办法找出app.config文件是否存在,而不使用“File.Exists”? 我试过了
if ( !ConfigurationManager.ConnectionStrings.ElementInformation.IsPresent )
{...}
但即使带有连接字符串的app.config存在,IsPresent仍为false。
编辑: 我误解了IsPresent财产吗?
答案 0 :(得分:19)
AppDomain
报告它希望应用程序的配置文件驻留的位置。您可以测试文件是否确实存在(不需要虚拟AppSettings,也不需要尝试找出应该调用的配置文件或它所在的位置):
public static bool CheckConfigFileIsPresent()
{
return File.Exists(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
}
答案 1 :(得分:9)
您可以在静态类中创建方法
public static class ConfigurationManagerHelper
{
public static bool Exists()
{
return Exists(System.Reflection.Assembly.GetEntryAssembly());
}
public static bool Exists(Assembly assembly)
{
return System.IO.File.Exists(assembly.Location + ".config" )
}
}
然后使用你想要的地方
ConfigurationManagerHelper.Exists(); // or pass assembly
答案 2 :(得分:4)
我能想到的最简单的方法是添加一些“虚拟”应用程序设置标志,然后检查该标志,例如:
if (string.IsNullOrEmpty(ConfigurationManager.AppSettings["dummyflag"]))
{
//config file doesn't exist..
}