在开发过程中管理多个应用配置文件

Posted

技术标签:

【中文标题】在开发过程中管理多个应用配置文件【英文标题】:Manage multiple app config files during development 【发布时间】:2010-09-15 14:51:59 【问题描述】:

我正在构建一个由多个不同客户使用的应用程序。每个客户都有相当多的自定义业务逻辑,我巧妙地将其重构为在运行时加载的程序集。该程序集的名称以及许多其他客户特定的设置都存储在应用程序的配置文件中。

现在,为了调试客户 foo 的应用程序,我必须执行以下操作:

    进入我的项目目录下的文件系统,删除app.configapp.config.foo复制到app.config.foo - Copy。 将app.config.foo - Copy 重命名为app.config。 告诉 Windows 是的,我想更改文件的扩展名。 切换回 Visual Studio。 在我的项目中打开Settings.settings 项。 当 VS 询问我是否要使用在 app.config 中更改的新设置时,单击“是”13 或 14 次。 关闭Settings.settings

好的!现在我可以调试了!

在我看来,打开Settings.settings 的繁琐是或者应该是不必要的:我不需要重新生成Settings.cs 中的默认值,因为我不使用它们。但这是我知道让 VS 知道 app.config 文件已更改这一事实的唯一方法,以便构建将其复制到输出目录。

必须有一种更简单的方法来做到这一点。这是什么?

【问题讨论】:

【参考方案1】:

您还可以通过以下方式让 Visual Studio 自动化 Robert 的方法:

    为每个客户端定义构建配置 在构建后事件中,只需将 app.config.xxx xcopy 到您的 bin 文件夹。其中 XXX 是 VS 中可访问的构建配置的名称。类似于: xcopy app.config.$(ConfigurationName) $(OutDir)/app.config

VS 会为您的客户端在单独的文件夹中放置一个不同的构建,并使用正确的配置文件。 bin/Client1/ bin/Client2/

【讨论】:

【参考方案2】:

您可以参考这篇文章了解一些好的做法:Managing Multiple Configuration File Environments with Pre-Build Events

【讨论】:

这行得通,虽然它对于真正应该在 IDE 中的功能来说是一个漫长的工作。 它还需要我为每个客户创建两个配置(调试和发布)。对我来说,这听起来像是错误的答案。 这就像一个魅力。每个位置(QA/DEV1/Production)都有自己的配置文件。零麻烦。这行得通。你是个天才!!我为每个位置的每个客户端使用 WCF 服务的 app.config 执行此操作。奇迹般有效。你是我的英雄!【参考方案3】:

想到管理多个配置文件的麻烦我做了这个工具:http://envride.codeplex.com/

其目的正是为了更轻松地以自动化方式管理多个configuration files。如果你能看一看,我会很高兴的。

【讨论】:

【参考方案4】:

有几个人建议使用多个 VS 配置,我认为这会奏效,但每次切换配置时都需要我重新构建解决方案。

我做的事情在我做的时候似乎有点愚蠢,但我已经使用它近一年了,它运行得非常顺利。在我的项目中,我直接为每个客户创建了一个单独的app.config.XXX 文件。实际的app.config 文件仅用于生成Settings.cs - 它具有所有正确的设置名称及其默认值。它永远不会被复制到构建目录中。

然后我编写了一个小程序,让我选择一个客户,它简单地遍历每个项目的目录,如果我选择了客户 XXX,则将 app.config.XXX 复制到 bin\debug\myprogram.exe.configbin\release\myprogram.exe.config。只要这个程序知道解决方案的根源在哪里(每当我分支代码时我必须小心一点),它就像一个魅力。

【讨论】:

【参考方案5】:

这个线程太旧了,无法代表 VS 中的当前工具。

    您可以使用与 web.debug.config 类似但用于 app.config 的插件。

https://marketplace.visualstudio.com/items?itemName=GolanAvraham.ConfigurationTransform

    对于没有插件的相同 app.config 转换。

https://www.linkedin.com/pulse/multi-appconfig-visual-studio-2017-benjamin-davis/

【讨论】:

【参考方案6】:

您可以选择为每个客户定义多个 Visual Studio 解决方案配置,并为您的 Windows 应用项目自定义 MSBuild 目标。

我已在此处记录了我如何处理此问题的步骤。 Multiple app.config files for deploying to different environments

【讨论】:

【参考方案7】:

经过一番挖掘和解决后,我的测试项目使用了多种配置,

    在配置管理器中,创建您需要的配置 复制粘贴您的 app.config 并添加配置名称,在我的例子中是 AHI、FIV、MGC,所以我的配置文件看起来像:App.AHI.config、App.MGC.config、App.FIV。配置。您可以随意命名,但要保持相同的约定 添加构建后事件。在我的情况下,它看起来像: xcopy $(ProjectDir)app.$(ConfigurationName).config $(TargetDir)$(TargetName).dll.config /y

这是我的帖子,您可以阅读更多详细信息

Running a Test Project with Multiple Configurations

【讨论】:

以上是关于在开发过程中管理多个应用配置文件的主要内容,如果未能解决你的问题,请参考以下文章

小房子配置开发实例-IT资产管理(资产类管理)--开发设计过程

——Git版本控制工具安装和配置

项目管理工具 SVN

敏捷开发过程管理平台的设计与应用

linux开发应用程序到运行的过程

在开发过程中设置管理员角色