Используйте поддержку настраиваемой переменной среды сборки:
Пусть у вас есть:
<connectionStrings>
<add name="My" connectionString="..;Data Source=|%AppData%|\Entities.sdf;.." />
</connectionStrings>
Можно использовать:
using System.Configuration; // requires reference to System.Configuration.dll
ConfigurationManager.ConnectionStrings["EntityConnectionString"].ConnectionString.Replace("%AppData%", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
Следующим способом вы можете поддерживать несколькопеременные окружения:
var vars = new Dictionary<string, string>
{
{ "%AppData%", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
{ "%Temp%", Environment.GetFolderPath(SpecialFolder.Temp) },
// etc..
{ "%YourNonStandardVar", "YourNonStandartPath" }
};
var result = ConfigurationManager.ConnectionStrings["YourString"].ConnectionString
foreach (var v in vars)
result = result.Replace(v.Key, v.Value);