繁体   English   中英

我可以将.NET app.config文件驻留在应用程序目录之外吗

[英]Can I have a .NET app.config file reside outside of application directory

我在与客户要求苦苦挣扎,我正在编写的Windows窗体应用程序将安装到C:\\ program files \\ xxx,并且将在一个没有对c:\\ program files \\ xxx目录的写入特权的帐户下运行。 因此,这意味着我的配置文件需要位于其他位置,以便用户可以对其进行手动更改,而我的应用程序可以对其进行更改。

反正我找不到这样做吗? 我希望可以使用configSource,但是这样做有局限性,即外部配置文件应与应用程序位于相同的相对物理路径,这对我没有好处。 appSettings文件属性将起作用,但这仅适用于该配置部分。 我利用了其他配置部分,例如连接字符串和system.serviceModel。 对我在这里的选择有任何想法吗?

谢谢!

应用程序设置框架自动处理用户范围的设置。

您可以将默认设置放在app.Config文件中,并提供一种机制(在程序内)来编辑设置。 任何编辑都会自动为您写入用户文档文件夹 (具有写许可权)中的用户特定设置文件中。 不需要实际的app.Config可以由每个用户直接写入。

只需在<userSettings>元素中包括“可写”设置默认值,框架就会按照正确的Windows编写位置指南为您处理。

试试下面的代码

private static XmlDocument loadConfigDocument()
    {
        XmlDocument doc = null;
        try
        {
            doc = new XmlDocument();
            doc.Load(getConfigFilePath());
            return doc;
        }
        catch (System.IO.FileNotFoundException e)
        {
            throw new Exception("No configuration file found.", e);
        }
    }

    private static string getConfigFilePath()
    {
        return Assembly.GetExecutingAssembly().Location + ".config";
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM