【问题标题】:DataDirectory is not getting replaced in my code WPF - app.configDataDirectory 没有在我的代码 WPF - app.config 中被替换
【发布时间】:2014-04-03 00:09:17
【问题描述】:

我一直在尝试为用户程序数据文件夹设置一个连接字符串,并按照本文答案的第一步进行操作:

%APPDATA% in connection string is not substituted for the actual folder?

很遗憾,我无法让它工作:

在我的 WPF 应用程序的 onstartup 方法中,我运行以下命令:

AppDomain.CurrentDomain.SetData("DataDirectory", Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData));

var test = AppDomain.CurrentDomain.GetData("DataDirectory");

var connection = System.Configuration.ConfigurationManager.ConnectionStrings["Conn"].ConnectionString;

App.config 中的值

<add name="Conn" connectionString="data source=|DataDirectory|\mydb" providerName="System.Data.SQLite" />

测试结果 = "c:\programdata" => 这很好

connectionstring ="|DataDirectory|\mydb" 的结果 => 这不好

我期待:“c:\programdata\mydb”

我一直在环顾四周……我做错了什么?

提前致谢,

【问题讨论】:

    标签: c# .net wpf connection-string app-config


    【解决方案1】:

    您误解了它的工作原理。
    设置 DataDirectory 是正确的,但文件上的实际连接字符串没有更改。
    当您打开连接时,字符串的|DataDirectory| 部分将替换为您的路径

    你只需要自己尝试看看

    【讨论】:

      【解决方案2】:

      如果您遵循链接到的答案,则您似乎在链接中的第 2 步中缺少以下内容:

       return connection.Replace("%APPDATA%",
          Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
      

      【讨论】:

        猜你喜欢
        • 2021-07-08
        • 1970-01-01
        • 2012-02-07
        • 2014-10-08
        • 2013-12-07
        • 2014-08-15
        • 2022-01-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多