簡體   English   中英

使用Windows7修改.EXE.CONFIG文件中的ConnectionString嗎?

[英]Modify ConnectionString in .EXE.CONFIG file with Windows7?

我有一個SQL Server CE 4.0(SDF)文件,該文件位於“用戶應用程序數據”文件夾下(由於Win7 UAC,您無法修改數據庫,如果它位於\\ Programs Files \\文件夾中。但是問題仍然是我現在需要的(在安裝時)修改.EXE.CONFIG文件(ConnectionString)以指向數據庫的新路徑,但是很顯然,我無權修改\\ Program Files \\文件夾中的.EXE.CONFIG文件...

那么人們如何解決這個問題呢? 您可以將.EXE.CONFIG文件與SDF文件一起部署到用戶“應用程序數據文件夾”嗎? 如果沒有怎么辦? 我無法相信您需要授予對\\ Program Files \\ Application文件夾的特殊訪問權限才能具有完全訪問權限...

我正在使用VS2010,並且使用標准的部署項目(MSI),但無論如何我都看不到將.EXE部署到一個地方,將.EXE.CONFIG部署到另一個地方(可以這樣做嗎?這是正確的解決方案嗎?)

謝謝,

在連接字符串中使用%APPDATA%變量,則無需修改配置文件。 與硬編碼包含用戶名的路徑相比,此方法還更加靈活,因為它將允許計算機的所有用戶使用您的程序並擁有自己的.sdf文件。

但是, 環境變量不會在.NET中自動展開 ,因此您需要使用Environment.ExpandEnvironmentVariable方法來強制實施:

// Example appSetting element:
//   <add key="examplePath" value="%APPDATA%\example.txt" />

string path = System.Configuration.ConfigurationManager.AppSettings["examplePath"].ToString();
path = Environment.ExpandEnvironmentVariables(path);
System.IO.File.WriteAllText(path, "foobar");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM