我正在构建一个由多个不同客户使用的应用程序。每个客户都有相当数量的自定义业务逻辑,我已经巧妙地将其重构为一个在运行时加载的程序集。该程序集的名称以及许多其他客户特定的设置都存储在应用程序的配置文件中。
现在,这是为了调试客户foo的应用程序我必须做的事情:
app.config
app.config.foo
复制到app.config.foo - Copy
。app.config.foo - Copy
重命名为app.config
。Settings.settings
项目。app.config
中已更改的新设置,VS会询问我。Settings.settings
。好!现在我准备调试了!
在我看来,打开Settings.settings
的必要性是,或者应该是不必要的:我不需要重新生成Settings.cs
中的默认值,因为我不使用他们。但这是我所知道的唯一方法,让VS知道app.config
文件已更改的事实,以便构建将其复制到输出目录。
必须有一种更简单的方法来做到这一点。它是什么?
答案 0 :(得分:7)
您还可以让Visual Studio通过以下方式自动化Robert的方法:
VS将在单独的文件夹中为您的客户端删除不同的版本,并使用正确的配置文件。 斌/客户端1 / 仓/客户机2 /
答案 1 :(得分:3)
答案 2 :(得分:3)
考虑到管理多个配置文件的混乱,我制作了这个工具:http://envride.codeplex.com/
其目的正是为了更容易以自动方式管理多个configuration files
。如果你看一下,我会很高兴的。
答案 3 :(得分:2)
有几个人建议使用多个VS配置,我认为这些配置可行,但每次我在配置之间切换时都需要我重建解决方案。
在我这样做的时候,我所做的事情似乎有点愚蠢,但是我已经使用了近一年了,它的工作非常顺利。在我的项目中,我为每个客户创建了一个单独的app.config.XXX
文件。实际的app.config
文件仅用于生成Settings.cs
- 它具有所有正确的设置名称及其默认值。它永远不会被复制到构建目录。
然后我编写了一个小程序,让我选择一个客户,只需浏览每个项目的目录,如果我选择了客户XXX,则将app.config.XXX
复制到bin\debug\myprogram.exe.config
和{{1 }}。只要这个程序知道解决方案的根源(每当我分支代码时我都要小心一点),它就像一个魅力。
答案 4 :(得分:1)
此线程太旧,无法代表VS中的当前工具。
https://marketplace.visualstudio.com/items?itemName=GolanAvraham.ConfigurationTransform
https://www.linkedin.com/pulse/multi-appconfig-visual-studio-2017-benjamin-davis/
答案 5 :(得分:0)
您可以选择定义多个Visual Studio解决方案配置,每个客户一个,并为您的Windows应用程序项目定制MSBuild目标。
我已经记录了我在这里处理这个问题的步骤。 Multiple app.config files for deploying to different environments
答案 6 :(得分:0)
经过一番挖掘和解决后,我的测试项目使用了多种配置,
这是我的帖子,所以你可以阅读更多细节