2017-09-14 23 views
1

我有一个webb应用程序,我想利用web.debug.config文件,以便在调试时使用测试数据库。这对我不起作用。我有这个在我的web.debig.config ..web.debug.config不起作用

<connectionStrings> 
    <add name="connStr" 
    connectionString="Data Source=LocalSqlserverName;Initial Catalog=testdb;Persist Security Info=True;User ID=Myusername;Password=mypassword" 
    xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> 
</connectionStrings> 

而在我的web.config文件中,此连接字符串指向另一个数据库服务器。但是当我调试时,我可以看到web.config文件中的连接字符串被用来代替web.debug.config中的连接字符串。我在这里做错了什么?

+0

如果你部署应用程序,将工作,但如果你用VS调试应用程序使用'web.config'文件 – esiprogrammer

+0

对于真正的它不会工作,始终?什么毫无价值的选择有一个解决方案从MS ... :( – MTplus

+0

@esiprogrammer你确定吗?我可以发誓在过去成功使用这个。无论如何,大部分时间我使用的是一个'xdt :Transform =“替换”而不是“SetAttributes”选项,但它应该没关系。 –

回答

2

正如@esiprogrammer所说,它通常只在Visual Studio的Publish上转换。

但是您可以在构建时变换Web.config。添加到您的*.csproj文件:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets" /> 
<Target Name="BeforeBuild"> 
    <TransformXml 
     Source="Web.Base.config" 
     Transform="Web.$(Configuration).config" 
     Destination="Web.config" /> 
</Target> 

保持原产地配置Web.Base.config。它足以启用转换并适用于任何XML配置文件。

来源:

https://stackoverflow.com/a/35561167/3850405