首页 文章

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

提问于
浏览
1

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

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

任何人都可以指导我吗?

1 回答

  • 1

    您可以创建 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 ) .

    如果您有 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 属性,如上所示 .

    最后,您可以使用“发布”功能(右键单击Web项目以选择它) . 将打开一个向导,您可以在其中设置发布配置文件 . 在那里你可以提到一个配置 - 比如“Debug”,“Release”,以及你之前创建的那些 .

    文件发布将把部署Web项目所需的文件放在一起,并通过应用适当的转换文件(例如Web.Release.Config)另外执行Web.Config的转换 . 发布的配置将命名为“Web.Config”并包含所有更改 .


    对于 trouble-shooting, 并了解有关该主题的更多信息,我建议使用以下链接:

    另请注意,Stack溢出的侧边栏显示更多相关链接 .

相关问题