Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何避免对app.config中特定部署的部分进行注释?_C#_Winforms_App Config_Asp.net 3.5 - Fatal编程技术网

C# 如何避免对app.config中特定部署的部分进行注释?

C# 如何避免对app.config中特定部署的部分进行注释?,c#,winforms,app-config,asp.net-3.5,C#,Winforms,App Config,Asp.net 3.5,注: 我在谷歌上搜索过这个,没有直接找到任何与WinForms相关的东西。键入此问题时建议的问题不适用于我的情况 我有一个WinForms.NET3.5应用程序,可以发布/部署到三个不同的位置:开发、测试和生产。每个部署类型都有自己的特定设置,例如:connectionString、标题、Web服务地址、要读取的目录/文件或其他设置 app.config中的当前情况如下: <!-- dev--> <configuration> <configSections&g

注: 我在谷歌上搜索过这个,没有直接找到任何与WinForms相关的东西。键入此问题时建议的问题不适用于我的情况

我有一个WinForms.NET3.5应用程序,可以发布/部署到三个不同的位置:开发、测试和生产。每个部署类型都有自己的特定设置,例如:connectionString、标题、Web服务地址、要读取的目录/文件或其他设置

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>
每次应用程序需要发布/部署到某个位置时,其他两个都会被注释掉。因此,如果我构建一个开发版本,我会注释掉PROD和TEST部分。为制作而发布时。。。你明白了


这是一项无用的耗时工作。我的问题是:有没有办法避免这种情况?一种方法是,我仍然有单独的特定于部署的配置,但我不需要注释掉所需的部分。

您想使用配置转换。。。在web应用程序上是开箱即用的,但在WinForms上则不然。查看此处以获取WinForms的帮助:是否每次进行部署时都要更新配置?它在变化吗?通常情况下,我会部署除配置之外的所有内容,并且只有当配置中有新的或修改的内容时才会更新它。