我通常把我的连接字符串放在一个单独的文件中,在web.config中添加这样的东西:
<connectionStrings configSource="WebConnection.config" />
我刚刚安装了VS 2012,它自动接收了我现有的发布设置.
但是,当我做一个webpublish它现在它自己添加两个连接字符串,所以我的web.config在部署目标现在看起来像这样:
<connectionStrings configSource="WebConnection.config"> <add name="EF.Model.DbContext" connectionString="EF.Model.DbContext_ConnectionString" providerName="System.Data.sqlClient" /> <add name="Migrations.Db.MigrationDb" connectionString="Migrations.Db.MigrationDb_ConnectionString" providerName="System.Data.sqlClient" /> </connectionStrings>
当然,这会产生错误(使用configSource时,节点内容必须为空).
我注意到,在新生成的.pubxml文件(现在存储发布设置)中有以下几行:
<ItemGroup> <_ConnectionStringsToInsert Include="EF.Model.DbContext" /> <_ConnectionStringsToInsert Include="Migrations.Db.MigrationDb" /> </ItemGroup>