提问人:friskyweasel 提问时间:3/10/2015 更新时间:11/13/2023 访问量:1169
Visual Studio 2013 Web.Config 转换 - 如何禁用自动格式设置/换行符?
Visual Studio 2013 Web.Config transformation - How to disable automatic formatting/line breaks?
问:
我们目前正在使用 VS 2013 为多个环境(开发/测试/质量保证/生产)开发 asp.net (silverlight) 应用程序,并且目前在发布构建时使用 Web 转换功能。
我们在主 web.config 中有一些行非常长(如 400+ 列)。我们意识到,为了可读性,正确的方法应该是将它们分成多行,但在我们的特定情况下,我们更希望它们保持原样。
因此,问题在于,如果使用 Web 转换发布并指向其中一个发布配置文件,则生成的 Web.Config 文件将不会保留一长行。在转换过程中,它会自动拆分(换行)到多行中,以便于阅读。我理解 Microsoft 为什么要这样做,但我认为肯定会在某个地方有一个简单的设置,我们可以禁用任何“自动格式化”、“自动换行”等。但是,我没有运气找到它。
另一种在不经历完整发布麻烦的情况下查看行为的方法是,右键单击解决方案资源管理器中主 Web.Config 条目下的 Web.Test.Config,然后选择“预览转换”。在这里,您将能够清楚地看到转换后的版本如何自动格式化,并为主 Web.Config 中超过一定字符数的行设置换行符。如果可能,我们希望关闭此行为...我们只想更改/转换实际值,而不是格式。
有谁知道这是否可行,如果是,如何实现?只是我们错过了一些简单的设置吗?
最后 - 几个简单的例子。如果我在从主 Web.Config 转换到 Web.Test.Config 时运行“预览转换”来预览更改,我会看到以下行为:
主 web.config 中的这一行:
<add verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXXX"/>
在最终发布的 web.config 中变成这样:
<add verb="*" path="Reserved.ReportViewerWebControl.axd"
type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXXX"/>
以及主 web.config 中的这一行:
<sessionState timeout="300"></sessionState>
在最终发布的 web.config 中变成这样:
<sessionState timeout="300">
</sessionState>
提前感谢您提供的任何帮助。
答:
可以通过向 Web.config 文件中的元素添加以下属性,在 Visual Studio 2013 的 Web.config 转换中禁用自动格式设置/换行符:xml:space=“preserve”。这将在转换过程中保留 Web.config 文件中的空白区域。
可以在 Visual Studio 中查看“文本编辑器”>“工具”>选项>“XML >格式设置”。此设置可能会对您有所帮助。
Visual Studio 不提供内置设置来禁用 web.config 转换过程中的自动格式设置或自动换行。您观察到的行为是有意为之的,旨在提高配置文件的可读性。
但是,您可以尝试以下几点来解决此问题:
使用 CDATA 部分: 将长行换行在原始 web.config 文件的 CDATA 节中。例如:
<![CDATA[<add verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXXX"/>]]>
转换过程可能会保留 CDATA 部分,从而防止自动换行。
转换后脚本: 在转换过程之后,可以使用生成后脚本或发布后脚本来操作 web.config 文件。此脚本实质上将删除不需要的换行符。但是,这种方法是一种解决方法,可能需要自定义脚本。
自定义构建过程: 请考虑使用 MSBuild 脚本创建自定义生成过程,这样你就可以更好地控制转换行为。这种方法需要更多的工作和定制。
Visual Studio 扩展: 检查是否有任何提供高级配置转换选项的 Visual Studio 扩展或第三方工具。扩展有时可以提供默认 Visual Studio 设置中不可用的其他功能。
请务必注意,Visual Studio 中可用的工具和功能可能会随每个新版本而更改,因此最好查看最新文档或社区讨论,了解可能满足特定要求的任何更新或新功能。此外,请考虑在开发人员论坛或社区频道上发布你的问题,Visual Studio 专家可以在这些频道中提供更新和具体的指导。
评论