asp.net - 一种在 Episerver 中具有未提交给 git 的本地配置覆盖的方法
问题描述
我有一个问题,即开发人员会不小心使用仅在他们的机器上有效的值对等Web/connectionStrings.config
进行本地更改。Web/web.config
我不怪他们;在我之前使用过的大多数系统中,有一种标准方法可以覆盖本地设置,如果本地文件存在,服务器将不会尝试导入,但如果不存在则使用默认设置,以便可以将此本地覆盖文件添加到 . gitignore 并且从不意外地提交给 repo。(例如,在 django 中,约定是有一个由主设置文件导入的 settins/local.py)
但是无论我搜索什么,我都没有在 Episerver 中找到任何方法;但是我觉得很奇怪,系统要求你修改一个重要的配置文件才能使用本地数据库而不是通用的开发数据库;然后要求每个开发人员记住手动添加除配置文件之外的每个文件,以免给其他人造成很多令人困惑的错误。肯定有更好的方法吗?
解决方案
一种方法是在 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
推荐阅读
- c# - 如何将双击绑定到列表框项
- php - 在方法参数中传递模型实例
- java - java FTP org.apache.commons.net.MalformedServerReplyException:截断的服务器回复:'220'
- python - 使用 PyInstaller 将带有命令行参数的 Python 程序转换为可执行文件
- mongodb - 无法启动MongoDB v4.0
- reactjs - 使用 Travis CI 时酶找不到 React 应用程序的 setupTests 文件
- excel - 如果一列中存在重复,则删除整行
- objective-c - 如何使用 iOS / Objective-C 中的 UI 组件桥从 React Native 发送点击事件
- xamarin.forms - Xamarin Forms - Android 中的 SMS BroadcastReceiver 无法正常工作
- ios - 在 Swift 中使用 %28@ 格式化字符串