settings.settings开发与生产中的连接字符串

时间:2009-08-20 07:30:26

标签: c# visual-studio-2008

我正在使用Visual Studio 2008,开发一个winforms应用程序。

我的数据库连接字符串存储在settings.settings中。

我的开发和生产环境需要不同的数据库登录凭据,现在我手动更改连接字符串,然后构建2个不同的环境。

有更好的解决方案吗?

7 个答案:

答案 0 :(得分:2)

一个永恒的问题! : - )

基本上,就目前而言,微软对此并没有很好的答案。

我要做的是在我的设置文件中有两个连接字符串,两个不同的名称,然后在app.config中有一个配置设置告诉我使用哪个:

MyDatabaseDEV = server=(local);database=mydatabase;-........
MyDatabasePROD = server=ProdServer;database=MyDatabase;........

和app.config

<appSettings>    
   <add key="UseDatabase" value="MyDatabaseDEV" />
</appSettings>

app.config中的此设置可以在您的构建过程中进行调整,例如在生成(发布)版本时,通过“after build”批处理文件或MSBuild任务或其他东西切换到“MyDAtabasePROD”。

微软承诺为.NET 4.0 / Visual Studio 2010提供越来越多的灵活工具,这些工具应该在2009年底之前完成。您应该能够创建“配置转换” - 查看这些博客文章:< / p>

马克

答案 1 :(得分:1)

我工作的地方是通过创建一个名为config的文件夹来完成的,该文件夹包含各种配置。

source
 config
  MyProject
    environment1
    environment2
  MyProject2
    environment1
    environment2

运行构建脚本时,它会根据您正在构建的环境来获取正确的配置...

答案 2 :(得分:0)

你可以让表单要求用户输入连接参数,例如服务器名称和数据库......,并将这些参数存储在注册表,文件等中......

答案 3 :(得分:0)

您应该将app.config文件添加到winform应用程序中。在此文件中存储ConnectionStrings部分下的连接字符串。

在您的代码中,创建连接时使用该连接字符串使用ConfigurationManager类来访问配置文件。

因此,当您部署应用程序时,您必须在配置文件中连接一次连接字符串,并且所有内容都按预期运行!

答案 4 :(得分:0)

您可以在设置中定义连接,在调试模式下使用dev连接,否则使用#if指令生成连接。

//affect your prod connection here
    #if DEBUG
       //re affect your dev connection here;
    #endif

要解释的链接:http://msdn.microsoft.com/fr-fr/library/4y6tbswk.aspx

答案 5 :(得分:0)

在解决方案资源管理器中右键单击该网站,然后选择“添加Web部署项目”。

每当构建新的WDP项目时,它将替换您指定的所有配置元素。根据Debug或Release版本,您还可以拥有不同的版本。它适用于几乎所有配置选项,包括连接字符串。有很多关于如何在网上正确配置它的文档,只需搜索“Web部署项目”。

这绝对是新的“默认”方式,直到MS决定在未来的.Net / Visual Studio版本中使其更正式,如果他们这样做的话。

答案 6 :(得分:0)

我开始使用名为TestMode =&#34; dev | prod | uat&#34;的设置。

编译目标的问题在于,您无法在构建后更改任何内容。

使用此方法,您可以包含所需所有环境所需的所有连接字符串和设置。在您的代码配置提供程序中,您可以根据此设置进行切换。

使用这种方法,您只需在部署后更改标记,或使用Octopus等部署软件为您更改标记。

我已经放弃了合并.config文件,这很困难且容易出错。