C# 在我的代码WPF-app.config中未替换DataDirectory

C# 在我的代码WPF-app.config中未替换DataDirectory,c#,.net,wpf,connection-string,app-config,C#,.net,Wpf,Connection String,App Config,我一直在尝试将connectionstring设置为users programdata文件夹,并遵循本文答案中的第一步: 不幸的是,我无法让它工作: 在WPF应用程序的onstartup方法中,我运行以下命令: AppDomain.CurrentDomain.SetData("DataDirectory", Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)); var test = AppDo

我一直在尝试将connectionstring设置为users programdata文件夹,并遵循本文答案中的第一步:

不幸的是,我无法让它工作:

在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”

我一直在到处找。。。我做错了什么


提前感谢,

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


您只需亲自尝试查看

如果您正在跟踪链接的答案,您似乎错过了步骤2中的以下内容。在链接中:

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