作为 CI 的一部分动态生成应用程序配置
我们有很多环境并考虑创建动态应用程序配置作为 CI 的一部分。配置值将使用 WPF 存储在数据库中。运营团队管理应用程序的新应用程序配置条目。
我面临的问题是如何动态创建配置并验证它?意见..?提前致谢。
We have many environments and thinking of creating dynamic application configuration as part of CI. The configuration values will be stored in Database using WPF. Operation team manages the app for new app config entries.
The problem I am facing is how can I dynamically create the config and validate it? Opinions..? Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果配置的数量是有限且已知的(测试、UAT、生产桌面、生产移动设备等),您可以利用 AppSettings、ConnectionStrings 和 ConfigSection 元素上的 configSource 属性。这是基本前提;为每个配置创建一个 AppSettings.xyz.config 文件,其中 xyz 是配置的名称(“local”、“test”、“uat”、“prod”等)。创建一个使用
定义的 app.config 文件,并为各个部分设置类似于以下内容的 configSource 属性:
现在,在部署逻辑中,您更改一件事;实体定义的字符串文字。此更改非常简单,您甚至不需要真正需要 XML 解析来进行更改;只需使用 FileStream 将文件放入内存中,找到实体定义,进行更改并将新内容吐回到文件中。如果您使用安装程序,您可以控制安装哪些子配置,或者为了简单起见将它们全部放在那里。
If the number of configurations is finite and known (test, UAT, production desktop, production mobile, etc), you can take advantage of the configSource attribute found on the AppSettings, ConnectionStrings and ConfigSection elements. Here's the basic premise; create an AppSettings.xyz.config file for each configuration, where xyz is the name of the configuration ("local" "test", "uat", "prod", etc). Create a single app.config file that uses a
<!ENTITY config "xyz">
definition, and has configSource attributes for various sections set similar to:Now, in deployment logic, you change one thing; the string literal defined by the entity. This change is simple enough that you don't even really need XML parsing to make the change; just slurp the file into memory with a FileStream, find the entity definition, make the change and spit the new content back out into the file. If you're using an installer, you can control which child configs are installed, or just put them all out there for simplicity.
请查看 T4。您可以创建一个框架 .config 文件,其中包含从数据库填充的某些变量,以生成特定于环境的文件。
Take a look at T4. You can create a skeleton .config file with certain variables that are filled from the database to generate the environment-specific file.