复制app.config以进行部署

时间:2011-06-18 13:09:21

标签: .net wpf .net-4.0

如果我通过将文件(可执行文件,dll和数据文件)复制到目标文件夹来部署项目,那么我可以省略复制app.config文件(executableName.config)是否正确,因为它会无论如何在用户本地存储中的每个用户的第一个应用启动时创建?

或者其他问题,是否正确,exeutables目录executableName.config/bin/debug中的app.config(/bin/release)仅用于此处的debuging目的,可以在没有任何目的的情况下删除影响?

到目前为止,我已经测试并使用了这个没有问题(删除和不部署配置文件)但是可能存在一些乍一看不明显的副作用?

3 个答案:

答案 0 :(得分:1)

pdb文件用于调试,而不是配置文件。配置文件用于配置。由于您已经在启动时为每个用户创建它,因此您可以将其删除。

将app.config文件保留在其他位置没有任何副作用。有时这是可取的。例如,您需要在项目之间共享app.config文件,然后您可以将此文件保存在解决方案文件夹中并在所有三个项目中使用它。

答案 1 :(得分:1)

我对this文章的理解是,当代码请求配置时,[AppName] .exe.config文件将与其他配置文件(例如Machine.config,User.config)合并。

因此,如果您没有任何配置并选择省略exe配置,则不应该有任何问题。

exe配置用于调试目的。

答案 2 :(得分:1)

我以前从未见过.config个文件。最常见的方法是使用application deployment framework,它将.config文件用于开发,并根据您要部署的环境对其进行修改。例如,在我们的项目中,我们有:

web.config
web.development.config
web.testing.config
web.production.config

web.config包含其中的所有内容,其他内容包含转换,例如......

的web.config

  <connectionStrings>
    <clear />
    <add name="MyConnectionString" connectionString="<Dev connection string>" providerName="System.Data.SqlClient" />
  </connectionStrings>

和web.production.config

  <connectionStrings>
    <add name="MyConnectionString"
      connectionString="<Production connection string>"
      xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
  </connectionStrings>

因此,当我使用发布工具发布到制作时,它会即时修改我的配置文件。

有关详细信息,请访问Google AppDeploy

希望这有帮助吗?