首页 > 解决方案 > 一种在 Episerver 中具有未提交给 git 的本地配置覆盖的方法

问题描述

我有一个问题,即开发人员会不小心使用仅在他们的机器上有效的值对等Web/connectionStrings.config进行本地更改。Web/web.config

我不怪他们;在我之前使用过的大多数系统中,有一种标准方法可以覆盖本地设置,如果本地文件存在,服务器将不会尝试导入,但如果不存在则使用默认设置,以便可以将此本地覆盖文件添加到 . gitignore 并且从不意外地提交给 repo。(例如,在 django 中,约定是有一个由主设置文件导入的 settins/local.py)

但是无论我搜索什么,我都没有在 Episerver 中找到任何方法;但是我觉得很奇怪,系统要求你修改一个重要的配置文件才能使用本地数据库而不是通用的开发数据库;然后要求每个开发人员记住手动添加配置文件之外的每个文件,以免给其他人造成很多令人困惑的错误。肯定有更好的方法吗?

标签: asp.netconfigurationgitignore

解决方案


一种方法是在 web.configfile中的元素上使用属性:<appsettings>

网络配置

您可以将文件添加到此文件Web.AppSettings.LocalDev.config.gitignore,您可以在此文件中设置将覆盖 web.config 中的值的值。

Web.AppSettings.LocalDev.config

<appSettings>
    <add key="someKey" value="newValueValidForLocalDev" />
</appSettings>

为了确保它只能在本地工作,在您很可能已经在某个地方的转换文件中添加转换,例如Web.Release.config

<appSettings xdt:Transform="RemoveAttributes(file)">
</appSettings>

顺便说一句,@cjsharp1 在他的评论中是 100% 正确的——这与EpiServer


推荐阅读