asp.net 为什么我的Web应用程序在调试运行时不使用Web. config.config?[重复]

ktca8awb  于 5个月前  发布在  .NET
关注(0)|答案(1)|浏览(40)

此问题在此处已有答案

11年前关闭。

可能重复:

Use Visual Studio web.config transform for debugging
我有一个asp.net应用程序,它有三个web.config转换。
x1c 0d1x的数据
我在想当我启动调试运行(F5,选择了调试模式)时,在Web. config.config中编写的转换将应用..但它不起作用.. Web.config使用的是“Base”。
你会告诉我:“转换不正确”..但它们是因为当我使用调试版本配置

进行部署(右键单击/发布)时
渲染的web.config有修改!所以它工作,但调试运行使用的是基本的web. config.有一个地方我可以配置吗?

ffvjumwh

ffvjumwh1#

编辑:更精细的方法可以在SO:Use Visual Studio web.config transform for debugging上找到
我曾经评论说我也喜欢这个功能,但是还没有找到一个方法来实现它,然后决定快速谷歌一下。
通过讨论here,我想到了cmac3095提供的一种可能的解决方案:
我并不经常使用MSBUILD,但我的解决方案是向执行转换的XXX.Web.csproj添加一个自定义目标,然后向调用MSBUILD的XXX.Web.csproj添加一个自定义“Post build”事件(执行转换)和一个XCOPY,用于将转换后的web.config复制到原始配置上。它总是包含最后一个被转换的web.config,这可能有点用处。(你一直认为你的其他开发人员之一已经覆盖了你的设置-从某种意义上说,他们已经覆盖了;- )..但是,当然,你的设置是在你在转换中使用的web.xxxxxx.config中。好了,足够的解释。
您可以这样做:将其复制并粘贴到您的Web.csproj中,就在注解掉的“TargetName =“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时,post build将运行自定义目标并生成转换后的web. config。XCOPY将覆盖现有的。

相关问题