Web.Debug.config和Web.Release.config设置无效的解决办法

前端之家收集整理的这篇文章主要介绍了Web.Debug.config和Web.Release.config设置无效的解决办法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

起因:开发的时候需要在本地和服务器配置不同的数据库连接,本地开发环境连接的是本地数据库,服务器连接的是生产环境数据库。这是在项目开发中很常见的情况。没想到,在visual studio.net(2015版)中踩了一个不小的坑。


先是从网上找到了分别设置的办法,在Web.Debug.config中插入

	<system.data xdt:Transform="InsertIfMissing">
		<DbProviderFactories>
			<add name="MysqL Data Provider" invariant="MysqL.Data.MysqLClient" description=".Net Framework Data Provider for MysqL" type="MysqL.Data.MysqLClient.MysqLClientFactory,MysqL.Data,Version=6.9.9.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d" />
		</DbProviderFactories>
	</system.data>
	<connectionStrings>
		<add name="BlogDBContext" connectionString="User Id=root;host=localhost;Database=bcblog1;password=;port=3306;persist security info=True;character set=utf8;" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
		<add name="ApplicationServices" connectionString="User Id=root;host=localhost;Database=bcblog1;password=;port=3306;persist security info=True;character set=utf8;" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
	</connectionStrings>
在Web.Release.config中插入

	<system.data xdt:Transform="Remove" />
	<connectionStrings>
		<add name="BlogDBContext" connectionString="User Id=user_blog1;host=47.89.54.39;Database=bcblog1;password=88888888;port=3306;persist security info=True;character set=utf8;" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
		<add name="ApplicationServices" connectionString="User Id=user_blog1;host=47.89.54.39;Database=bcblog1;password=88888888;port=3306;persist security info=True;character set=utf8;" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
	</connectionStrings>
本来这样问题应该解决了,但根本不起作用,这是微软的东西最让人愤怒的地方:出了问题根本找不到原因在哪里,只能怪自己的人品问题或祈求神明保佑。


经历了几个小时的愤怒、绝望、憎恨、无奈。。。在国外网站中找到了解决办法:

修改项目的配置文件,比如XXX.csproj或XXX.vbproj(csproj或vbproj取决于你使用的语言是C#还是VB.NET),把最后的注释掉的BeforeBuild和AfterBuild部分取消注释,修改为:

  <Target Name="BeforeBuild">
    <TransformXml Source="Web.config" Transform="Web.$(Configuration).config" Destination="Web.config" />
  </Target>
  <Target Name="AfterBuild">
  </Target>
这是微软犯的错误,一个小bug浪费了无数人几个小时甚至几天的生命。


最后,微软的东西还是不错的,人性化、易用,就是有时候犯起神经来让人无语。

原文链接:https://www.f2er.com/windows/566665.html

猜你在找的Windows相关文章