2011-07-05 57 views
9

可能重复:
Use Visual Studio web.config transform for debugging为什么我的Web应用程序在调试运行时不使用Web.Debug.config?

我有三个web.config文件转换的asp.net应用程序。

enter image description here

我在想,如果我启动调试运行(与选定的调试模式F5)写在Web.Debug.config的转换将适用。但它不工作..在Web.config使用的是“基地”之一。

你会告诉我:“转型是不对的”。但是他们是因为当我做出部署(右键单击/发布)与调试版本的配置: enter image description here

渲染的web.config有修改!所以它的工作原理,但调试运行是使用基本的web.config。有没有我可以配置的地方?

回答

7

编辑:更加精细的方法可以在SO发现: Use Visual Studio web.config transform for debugging

我曾评论,我也希望此功能,但没有找到一个办法做到这一点呢。然后决定有一个快速谷歌。

讨论here具有使我由cmac3095提供一个可能的解决方案:

我不惹MSBUILD那么多 但我的解决方案是一个自定义的 目标添加到XXX.Web。这的csproj做 变换,然后添加自定义 “后建设”事件到 XXX.Web.csproj是调用MSBUILD (执行变换)和 XCOPY到转化 web.config中比原先复制。一边 效果是,因为我们有TFS,它 总是包含最后的web.config 该转化可以是 位usettling(你一直在想一个 您的其他开发人员已经 覆盖您的设置 - 其中,在 的意义上,它们有; - )....但是,当然,您的设置都在 web.xxxxxx.config中,您可以使用 进行转换。好的,足够的解释。
这里是你做什么: 这种复制并粘贴到你XXXX.Web.csproj只是 注释掉 “目标 NAME =” BeforeBuild”元素之上...

<UsingTask TaskName="TransformXml" 
AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll" 
/> <Target Name="Transform"> 
    <MakeDir Directories="obj\$(Configuration)" 
Condition="!Exists('obj\$(Configuration)')" 
/> 
    <TransformXml Source="Web.Config" Transform="Web.$(Configuration).config" 
Destination="obj\$(Configuration)\Web.config" 
StackTrace="true" /> </Target> 
<Target Name="AfterBuild"> 
</Target> 

这就是它关于你的xxx.web.config的未来建设 ,后建 将运行自定义的目标和 产生转化的web.config该 XCOPY将覆盖现有的。

+0

感谢您的回答...我认为它会更简单。就像一个视觉工作室的菜单.. ;-) – bAN

+0

在MS的防守中,这个过程有很多反驳的论点。我确实看到在未来VS版本中提及它作为一个功能,但不是在官方文章中,所以不要引用我的话。 – Smudge202

相关问题