我的.Net Web应用程序有三种环境,即开发,发布和生产,每种环境都有自己的配置和项目设置文件。
假设不同环境的设置和配置文件在一个系统中,我想创建一个小脚本或应用程序,开发人员只提到环境类型,相关设置和配置文件被加载,然后应用程序构建
有人可以指导我吗?
答案 0 :(得分:1)
您可以创建配置转换并在发布配置文件中使用它们。对于每个配置(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>
该示例将使用指定的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>
差异将是例如数据源设置,其他特定于环境的设置,例如Web服务的URL等。
要创建它们,请选择“Debug”之类的配置,然后右键单击Web.Config文件,您将看到一个上下文菜单项“Add config transform” - 单击它和Web.Debug.Config转换文件将在Web.Config下创建。如前所述进行调整;将整个键或设置复制到转换文件,然后添加适当的xdt
属性,如上所示。
最后,您可以使用“发布”功能(右键单击Web项目以选择它)。将打开一个向导,您可以在其中设置发布配置文件。在那里你可以提到一个配置 - 比如“Debug”,“Release”,以及你之前创建的那些。
文件发布会将部署Web项目所需的文件放在一起,并通过应用适当的转换文件(例如Web.Release.Config)另外执行Web.Config的转换。已发布的配置将命名为“Web.Config”并包含所有更改。
对于故障排除,并了解有关该主题的更多信息,我建议使用以下链接:
另请注意,Stack溢出的边栏显示更多相关链接。