我的.Net web应用程序通过3种环境进行开发、发布和生产,每个环境都有自己的配置和项目设置文件。
假设不同环境的设置和配置文件位于一个系统中,我希望创建一个小脚本或应用程序,其中开发人员只提到环境类型,然后加载相关的设置和配置文件,然后构建应用程序。
有人能指点我吗?
发布于 2017-11-03 12:21:33
您可以创建配置转换,并在发布配置文件中使用它们。用于每个配置(调试、发布、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>该示例将将现有的ClientSessionTimeout设置替换为指定的设置(使用value="100")。请注意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>区别将是,例如,数据源设置,其他环境特定的设置,如URL到web服务等。
要创建这些配置,请选择一个配置,如“调试”,然后右键单击Web.Config文件,您将看到上下文菜单项“添加配置转换”-单击它,Web.Debug.Config转换文件将在Web.Config下面创建。按照前面提到的修改它;将整个键或设置复制到转换文件中,然后添加适当的xdt属性,如上面所示。
最后,您可以使用“发布”函数(右键单击web prroject来选择它)。向导打开,您可以在其中设置发布配置文件。在这里,您可以提到一个配置,比如“调试”、“发布”,以及您之前创建的配置。
文件发布将把部署web项目所需的文件放在一起,并通过应用适当的转换文件(例如,Web.Config )来执行Web.Release.Config的转换。发布的配置将命名为"Web.Config“,并包含所有更改。
为了解决的问题,和了解更多关于这个主题的内容,我推荐以下链接:
还请注意,堆栈溢出的边栏显示了更多相关链接。
https://stackoverflow.com/questions/47095434
复制相似问题