Winforms debug/release production/dev连接字符串app.config

本文关键字:字符串 app 连接 config production debug release Winforms dev | 更新日期: 2023-09-27 18:25:30

发布Winforms application时,我总是忘记更改连接字符串。

我使用的是EF6.net framework 4.5

App.config

<connectionStrings>
<add name="NarudzbeEntities" connectionString="metadata=res://*/NarudzbeModel.csdl|res://*/NarudzbeModel.ssdl|res://*/NarudzbeModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=192.168.1.XX;initial catalog=Narudzbe;persist security info=True;user id=USER;password=PASSWORD;MultipleActiveResultSets=True;App=EntityFramework&quot;"
  providerName="System.Data.EntityClient" />
<add name="Narudzbe.Properties.Settings.NarudzbeConnectionString"
  connectionString="Data Source=192.168.1.XX;Initial Catalog=Narudzbe;Persist Security Info=True;User ID=USER;Password=PASSWORD"
  providerName="System.Data.SqlClient" />
</connectionStrings>

我怎么能在app.config中有两个连接字符串,或者什么是正确的方法。

有很多关于ASP.NET web.config的文章,但我需要winforms的解决方案。

Winforms debug/release production/dev连接字符串app.config

我目前使用的是每个配置的App.config。所以在您的用例中,它将是一个App.Debug.config和一个App.Release.config

要使其工作,您必须编辑项目文件。在使用visualstudio的dotnet框架中,您必须卸载您的项目。

在dotnet核心或框架sdk风格的项目(dotnet核心风格的项目)中,你不必这样做。

添加以下片段:

<PropertyGroup>
  <AppConfig>App.$(Configuration).config</AppConfig>
</PropertyGroup>

现在,无论您在什么配置中运行代码,都将使用app.config。

我在下面这个帖子的回答中发现了这一点。对我来说,这是使用运行在dotnet框架4.8上的winforms,同时使用ef核心3.1。

您可以在app-config中执行类似操作。使用配置文件链接的ConnectionStrings部分可以获得很好的信息。

<configuration>
<connectionStrings>
    <clear/>
    <add name="Dev"
         providerName="System.Data.SqlClient"
         connectionString="Data Source=machine'sq; Initial Catalog=DevDB; Integrated Security=SSPI"
/>
    <add name="QA"
         providerName="System.Data.SqlClient"
         connectionString="Data Source=machine'sql; Initial Catalog=QADB; Integrated Security=SSPI"
/>
    <add name="Prod"
         providerName="System.Data.SqlClient"
         connectionString="Data Source=machine'sql; Initial Catalog=ProdDB; Integrated Security=SSPI"
/>
</connectionStrings>

如果使用EF,则必须在应用程序配置中使用与Context类同名的连接字符串。当我试图通过Context类的基构造函数传递连接字符串名称时,遇到了问题。因此,在发布应用程序时,只需在应用程序配置中备注连接字符串即可。