C# 在我的代码WPF-app.config中未替换DataDirectory
我一直在尝试将connectionstring设置为users programdata文件夹,并遵循本文答案中的第一步: 不幸的是,我无法让它工作: 在WPF应用程序的onstartup方法中,我运行以下命令: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
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));