我创建了一个新的VS 2015 Web项目MVC5。默认情况下,我可以看到 Web.config 和 Web.Debug.config
阅读几篇文章,我真的看不到我真正需要做的是为了让它从Web.Debug.config获取我的值并替换当前的Web.config。
我一直在看另一个正在做的工作项目并且工作正常,但我经历了很多属性和设置,我看不出有什么不同。
我可以右键单击Web.Debug.config和Preview,它会告诉我它将用“10.10.10.10”替换“test”,所以它对我来说似乎很好(就像它应该工作但运行项目它不会改变价值)
实施例
项目:
调试/任何CPU,运行谷歌浏览器,问题是数据源没有改变
Web.Debug.config
<connectionStrings>
<add name="Envy" connectionString="Data Source=10.10.10.10\MSSQLSERVER2014;Initial Catalog=myDB;user id=myLoginID;password=password" providerName="System.Data.SqlClient"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
<add name="EnvyIdentity" connectionString="Data Source=10.10.10.10\MSSQLSERVER2014;Initial Catalog=myDB;user id=myLoginID;password=password" providerName="System.Data.SqlClient"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
<add name="DNNSmartstore" connectionString="Data Source=10.10.10.10\MSSQLSERVER2014;Initial Catalog=myDB;user id=myLoginID;password=password" providerName="System.Data.SqlClient"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
<add name="DNNPos" connectionString="Data Source=10.10.10.10\MSSQLSERVER2014;Initial Catalog=DevFood_POS;user id=myLoginID;password=password" providerName="System.Data.SqlClient"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
的Web.config
<connectionStrings>
<add name="Envy" connectionString="Data Source=test\MSSQLSERVER2014;Initial Catalog=myDB;user id=myLoginID;password=password" providerName="System.Data.SqlClient"/>
<add name="EnvyIdentity" connectionString="Data Source=10.10.10.10\MSSQLSERVER2014;Initial Catalog=myDB;user id=myLoginID;password=password" providerName="System.Data.SqlClient"/>
<add name="DNNSmartstore" connectionString="Data Source=10.10.10.10\MSSQLSERVER2014;Initial Catalog=myDB;user id=myLoginID;password=password" providerName="System.Data.SqlClient"/>
<add name="DNNPos" connectionString="Data Source=10.10.10.10\MSSQLSERVER2014;Initial Catalog=DevFood_POS;user id=myLoginID;password=password" providerName="System.Data.SqlClient"/>
</connectionStrings>
答案 0 :(得分:10)
开箱即用,转换(调试/发布)应用于发布(部署)。在部署时不在构建上。
要在构建时实现此目的,您可能需要对项目文件进行一些手动编辑。看看前面的示例:https://gist.github.com/EdCharbeneau/9135216
答案 1 :(得分:5)
非常接近,但向后。在这种情况下,请仅使用 Web.config 和 Web.Release.config 。
将所有调试设置放在 Web.config 中,将发布设置放在 Web.Release.config 中,不要使用 Web.Debug.config 。调试将使用常规的Web.config进行,只有已发布的版本才能获得“发布”设置。
来自上述示例:
Web.config
<!-- test/debug settings in regular web.config -->
<connectionStrings>
<add name="Envy" connectionString="Data Source=10.10.10.10\MSSQLSERVER2014;Initial Catalog=myDB;user id=myLoginID;password=password" providerName="System.Data.SqlClient"/>
<add name="EnvyIdentity" connectionString="Data Source=10.10.10.10\MSSQLSERVER2014;Initial Catalog=myDB;user id=myLoginID;password=password" providerName="System.Data.SqlClient"/>
<add name="DNNSmartstore" connectionString="Data Source=10.10.10.10\MSSQLSERVER2014;Initial Catalog=myDB;user id=myLoginID;password=password" providerName="System.Data.SqlClient"/>
<add name="DNNPos" connectionString="Data Source=10.10.10.10\MSSQLSERVER2014;Initial Catalog=DevFood_POS;user id=myLoginID;password=password" providerName="System.Data.SqlClient"/>
</connectionStrings>
Web.Release.config
<connectionStrings>
<add name="Envy" connectionString="Data Source=test\MSSQLSERVER2014;Initial Catalog=myDB;user id=myLoginID;password=password" providerName="System.Data.SqlClient"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
<add name="EnvyIdentity" connectionString="Data Source=10.10.10.10\MSSQLSERVER2014;Initial Catalog=myDB;user id=myLoginID;password=password" providerName="System.Data.SqlClient"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
<add name="DNNSmartstore" connectionString="Data Source=10.10.10.10\MSSQLSERVER2014;Initial Catalog=myDB;user id=myLoginID;password=password" providerName="System.Data.SqlClient"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
<add name="DNNPos" connectionString="Data Source=10.10.10.10\MSSQLSERVER2014;Initial Catalog=DevFood_POS;user id=myLoginID;password=password" providerName="System.Data.SqlClient"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
Web.Debug.config 是放置要部署到测试服务器时要应用的设置的地方。起初这个名字很容易让人误解。我唯一使用此功能的地方是我的测试服务器需要与“开发”框中的设置不同。 :-)