Visual Studio Winforms调试/发布生产/开发连接字符串app.config

np8igboo  于 2022-12-14  发布在  其他
关注(0)|答案(3)|浏览(330)

发布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.NETweb.config,但我需要解决方案的winforms。

ymzxtsji

ymzxtsji1#

你可以在应用程序配置中做类似的事情。Using the ConnectionStrings section of the configuration file链接有很好的信息可以遵循。

<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>
i2loujxw

i2loujxw2#

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

yjghlzjz

yjghlzjz3#

我目前使用的是每种配置的App.config。所以在您的用例中,这将是App.Debug.configApp.Release.config
要使其工作,您必须编辑项目文件。在使用visual studio的dotnet framework中,您必须卸载您的项目。
在dotnet core或framework sdk风格的项目中(dotnet core风格的项目)你不必这样做。
添加以下代码段:

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

现在,无论您在什么配置中运行代码,都将使用app.config。
我在this thread上的以下答案中发现了这一点。对我来说,这可以使用运行在dotnet framework 4.8上的winforms,同时使用ef core 3.1。

相关问题