基于环境构建.Net Web应用程序

时间:2017-11-03 12:07:37

标签: asp.net .net

我的.Net Web应用程序有三种环境,即开发,发布和生产,每种环境都有自己的配置和项目设置文件。

假设不同环境的设置和配置文件在一个系统中,我想创建一个小脚本或应用程序,开发人员只提到环境类型,相关设置和配置文件被加载,然后应用程序构建

有人可以指导我吗?

1 个答案:

答案 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溢出的边栏显示更多相关链接。