对于 Visual Studio 2010 基于 Web 的应用程序,我们具有配置转换功能,我们可以通过这些功能为不同的环境维护多个配置文件。但相同的功能不适用于 Windows 服务/WinForms 或控制台应用程序的 App.Config 文件。
然而,这并不简单,需要许多步骤。有没有更简单的方法来实现 app.config 文件的相同功能?
这现在适用于本文中介绍的 Visual Studio 插件:SlowCheetah - Web.config Transformation Syntax now generalized for any XML configuration file。
您可以右键单击您的 web.config,然后单击“添加配置转换”。当你这样做时,你会得到一个 web.debug.config 和一个 web.release.config。如果您愿意,您可以创建一个 web.whatever.config,只要名称与配置文件一致。这些文件只是您想要进行的更改,而不是您的 web.config 的完整副本。 您可能认为您想使用 XSLT 来转换 web.config,但是虽然他们感觉直观正确,但实际上非常冗长。 这里有两种转换,一种使用 XSLT,另一种使用 XML 文档转换语法/命名空间。与所有事情一样,在 XSLT 中有多种方法可以做到这一点,但您会明白大致的想法。XSLT 是一种通用的树转换语言,而这种部署语言针对常见场景的特定子集进行了优化。但是,很酷的部分是每个 XDT 转换都是一个 .NET 插件,因此您可以自己制作。 <?xml version="1.0" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version=”1.0”> NewSetting New Setting Value 或者通过部署转换同样的事情: <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document- Transform”>
您可以右键单击您的 web.config,然后单击“添加配置转换”。当你这样做时,你会得到一个 web.debug.config 和一个 web.release.config。如果您愿意,您可以创建一个 web.whatever.config,只要名称与配置文件一致。这些文件只是您想要进行的更改,而不是您的 web.config 的完整副本。
您可能认为您想使用 XSLT 来转换 web.config,但是虽然他们感觉直观正确,但实际上非常冗长。
这里有两种转换,一种使用 XSLT,另一种使用 XML 文档转换语法/命名空间。与所有事情一样,在 XSLT 中有多种方法可以做到这一点,但您会明白大致的想法。XSLT 是一种通用的树转换语言,而这种部署语言针对常见场景的特定子集进行了优化。但是,很酷的部分是每个 XDT 转换都是一个 .NET 插件,因此您可以自己制作。
<?xml version="1.0" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version=”1.0”> NewSetting New Setting Value
或者通过部署转换同样的事情:
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-
Transform”>