我的.Net Web应用程序有三种环境,即开发,发布和 生产环境 ,每种环境都有自己的配置和项目设置文件 .
假设不同环境的设置和配置文件在一个系统中,我想创建一个小脚本或应用程序,开发人员只需提及环境类型,相关设置和配置文件就会被加载,然后构建应用程序 .
任何人都可以指导我吗?
您可以创建 config transforms 并在 publish profiles. 中使用它们 . 对于每个配置(Debug,Release,YourOwnConfig ...),将有一个由其配置命名的文件(Web.Debug.config,Web.Release.Config,Web.YourOwn.Config, ...)
诀窍是你有一个完整的配置文件,原始的Web.Config,变换只是通过XSLT转换语法提到这个文件的差异(一旦你创建了一个新的转换,文件本身会有一些例子显示句法) . 例如,为 appSettings 键添加变换如下所示:
<configuration> <appSettings> <add key="ClientSessionTimeout" value="100" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" /> </appSettings> </configuration>
该示例将使用指定的设置(使用 value="100" )替换现有的 ClientSessionTimeout 设置 . 注意 xdt:locator 如何指定键属性将用于本地化设置, xdt:Transform 指定将设置所提及的属性(此处: value ) .
value="100"
ClientSessionTimeout
xdt:locator
xdt:Transform
value
如果您有 applicationSettings ,则需要替换设置本身:
<applicationSettings> <WebApplication2.Properties.Settings> <setting name="Setting" serializeAs="String" xdt:Transform="Replace" xdt:Locator="Match(key)"> <value>Some value</value> </setting> </WebApplication2.Properties.Settings> </applicationSettings>
差异将是例如数据源设置,其他环境特定设置,例如Web服务的URL等 .
要创建它们,请选择"Debug"之类的配置,然后右键单击Web.Config文件,您将看到一个上下文菜单项"Add config transform" - 单击它,将在Web.Config下创建Web.Debug.Config转换文件 . . 如前所述进行调整;将整个键或设置复制到转换文件,然后添加适当的 xdt 属性,如上所示 .
xdt
最后,您可以使用“发布”功能(右键单击Web项目以选择它) . 将打开一个向导,您可以在其中设置发布配置文件 . 在那里你可以提到一个配置 - 比如“Debug”,“Release”,以及你之前创建的那些 .
文件发布将把部署Web项目所需的文件放在一起,并通过应用适当的转换文件(例如Web.Release.Config)另外执行Web.Config的转换 . 发布的配置将命名为“Web.Config”并包含所有更改 .
对于 trouble-shooting, 并了解有关该主题的更多信息,我建议使用以下链接:
asp net web application: add config transform grayed out
web.config transform not working
另请注意,Stack溢出的侧边栏显示更多相关链接 .
1 回答
您可以创建 config transforms 并在 publish profiles. 中使用它们 . 对于每个配置(Debug,Release,YourOwnConfig ...),将有一个由其配置命名的文件(Web.Debug.config,Web.Release.Config,Web.YourOwn.Config, ...)
诀窍是你有一个完整的配置文件,原始的Web.Config,变换只是通过XSLT转换语法提到这个文件的差异(一旦你创建了一个新的转换,文件本身会有一些例子显示句法) . 例如,为 appSettings 键添加变换如下所示:
该示例将使用指定的设置(使用
value="100"
)替换现有的ClientSessionTimeout
设置 . 注意xdt:locator
如何指定键属性将用于本地化设置,xdt:Transform
指定将设置所提及的属性(此处:value
) .如果您有 applicationSettings ,则需要替换设置本身:
差异将是例如数据源设置,其他环境特定设置,例如Web服务的URL等 .
要创建它们,请选择"Debug"之类的配置,然后右键单击Web.Config文件,您将看到一个上下文菜单项"Add config transform" - 单击它,将在Web.Config下创建Web.Debug.Config转换文件 . . 如前所述进行调整;将整个键或设置复制到转换文件,然后添加适当的
xdt
属性,如上所示 .最后,您可以使用“发布”功能(右键单击Web项目以选择它) . 将打开一个向导,您可以在其中设置发布配置文件 . 在那里你可以提到一个配置 - 比如“Debug”,“Release”,以及你之前创建的那些 .
文件发布将把部署Web项目所需的文件放在一起,并通过应用适当的转换文件(例如Web.Release.Config)另外执行Web.Config的转换 . 发布的配置将命名为“Web.Config”并包含所有更改 .
对于 trouble-shooting, 并了解有关该主题的更多信息,我建议使用以下链接:
asp net web application: add config transform grayed out
web.config transform not working
另请注意,Stack溢出的侧边栏显示更多相关链接 .