DataDirectory не заменяется в моем коде WPF - app.config

Я пытаюсь установить connectionstring в папку programdata для пользователей и выполнил первый шаг в ответе на этот пост:

% APPDATA% в строке подключения не заменяется фактической папкой?

К сожалению, я не могу заставить его работать:

В методе onstartup моего приложения WPF я запускаю следующее:

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

результат теста = "c:\programdata" => это хорошо

результат connectionstring = "| DataDirectory |\mydb" => это нехорошо

Я ожидаю: "c:\programdata\mydb"

Я искал все вокруг... что я делаю неправильно?

заранее спасибо,

2 ответа

Вы не понимаете, как это работает. Установка DataDirectory верна, но фактическая строка подключения не изменяется в файле. Когда вы открываете соединение, |DataDirectory| часть строки будет заменена вашим путем

Вам просто нужно попробовать и посмотреть сами


Если вы следуете ответу, с которым вы связались, вам кажется, что на шаге 2 отсутствует ссылка:

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

licensed under cc by-sa 3.0 with attribution.