注意: 我在Google上搜索过此内容并没有直接找到与WinForms相关的内容。输入此问题时建议的问题并不适用于我的情况。
我有一个WinForms(.NET 3.5)应用程序,可以发布/部署到三个不同的位置:development
,test
和production
。每种部署类型都有自己的特定设置,例如:connectionString,title(s),webservice address,要读取的目录/文件或其他设置。
app.config中的当前情况如下:
<!-- dev-->
<configuration>
<configSections>...</configSections>
<appSettings>
<add key="Deployment" value="dev" />
<add key="SourceDir" value="\\server\foo\dev" />
</appSettings>
...
</configuration>
<!-- test -->
<configuration>
<configSections>...</configSections>
<appSettings>
<add key="Deployment" value="test" />
<add key="SourceDir" value="\\server\foo\test" />
</appSettings>
...
</configuration>
<!-- prod -->
<configuration>
<configSections>...</configSections>
<appSettings>
<add key="Deployment" value="prod" />
<add key="SourceDir" value="\\server\foo\prod" />
</appSettings>
...
</configuration>
每次应用程序需要发布/部署到某个位置时,其他两个都会被注释掉。因此,如果我构建DEV版本,我会注释掉PROD和TEST部分。在发布生产时,......你明白了。
这是一项无用的耗时工作。我的问题是:有没有办法避免这种情况?我还有一种方法可以使用单独的特定于部署的配置,但我不需要对所需的部分进行评论(