Dot-Net
App.config 連接字元串相對路徑
我需要在 app.config 中設置 sqlite 連接字元串。我想設置相對於調試/發布文件夾的路徑,數據庫文件將被複製到這些文件夾。
<add name="EmailsSQLite" connectionString="data source=c:\Users\Test\Documents\Visual Studio 2008\Projects\TestConsole\Emails\data\EmailDatabase.sqlite" providerName="System.Data.SQLite"/>我想要類似的東西:
<add name="EmailsSQLite" connectionString="data source=\data\EmailDatabase.sqlite" providerName="System.Data.SQLite"/>那可能嗎?
您可以按照 Lefty 的回答中所述指定相對路徑。
然而,這將是相對於目前工作目錄的,它不一定是包含您的執行檔的目錄。
一種解決方法是在使用之前修改連接字元串,例如
在 app.config 中:
connectionString="data source={AppDir}\data\EmailDatabase.sqlite在您的程式碼中:
ConnectionStringSettings c = ConfigurationManager.ConnectionStrings[name]; if (c == null) { ... handle missing connection string ... } string fixedConnectionString = c.ConnectionString.Replace("{AppDir}", AppDomain.CurrentDomain.BaseDirectory); ... use fixedConnectionString