部署后修改连接字符串

Posted

技术标签:

【中文标题】部署后修改连接字符串【英文标题】:Connection Strings modification after the deployment 【发布时间】:2008-10-25 16:24:07 【问题描述】:

我为应用程序创建了安装项目,我可以看到配置文件(Application.exe.config)的后期修改不会影响应用程序的执行。

我正在开发一个包含数据库文件的应用程序,我希望用户能够移动数据库文件并修改连接字符串。

有谁知道使用数据库文件部署应用程序的最佳做法是什么?

【问题讨论】:

【参考方案1】:

只要您在 DB 访问 DLL 的 Settings.settings 文件和应用程序的配置文件中使用完全相同的连接字符串设置,它应该可以工作。

一个适合我的例子:

 <connectionStrings>
  <add name="YourApp.Properties.Settings.DatabaseConnectionString"
  connectionString="Data Source=localhost;Initial Catalog=xxx;Integrated Security=True;"
  providerName="System.Data.SqlClient" />
 </connectionStrings>

当在两个位置(即 dll 的 Settings.settings 和 exe 的 App.config 文件)正确输入时,这确实允许我在应用程序运行之前更改 YourApp.exe.config 中的数据库连接。

(我假设您已经知道需要更改应用程序的配置文件,因为 DLL 不直接支持 app.config 机制。)

【讨论】:

【参考方案2】:

您是否使用UDL file 结账? 如果您将连接字符串保存在 udl 文件中,用户只需双击该文件即可通过界面更改连接。 您可以在应用程序中设置连接字符串以指向 udl 文件。 如果需要,您还可以通过编程方式启动 udl 接口。 唯一的缺点是如果用户将他们的密码保存到文件中,它会保存为纯文本。但是,如果您使用 Windows 身份验证,这不是问题。

【讨论】:

【参考方案3】:

您确定删除了设置的默认值吗?这些是从 dll 而不是从配置文件中编译和获取的。

【讨论】:

以上是关于部署后修改连接字符串的主要内容,如果未能解决你的问题,请参考以下文章

在 app.config 中部署通过 RSAProtectedConfigurationProvider 加密的连接字符串

为啥把连接数据库用的连接字符串放到配置文件中

C#中连接MySql的字符串

FineReport 部署到tomcat后配置jndi连接

MongoError:此 MongoDB 部署不支持可重试写入。请将 retryWrites=false 添加到您的连接字符串

MongoError:此 MongoDB 部署不支持可重试写入。请将 retryWrites=false 添加到您的连接字符串