【问题标题】:Why doesn't app.config get added after installing from windows installer?为什么从 Windows 安装程序安装后没有添加 app.config?
【发布时间】:2020-10-29 12:18:25
【问题描述】:

我有一个使用 Visual Studio 2008 (C#) 开发的 Windows 应用程序。 它有一个 app.config 文件,其中保存了各种配置相关信息。为项目创建安装程序并安装后,没有 app.config 文件被复制到安装目录。但是,依赖此文件中设置的功能似乎可以工作。

现在这些设置之一是数据库连接字符串,当安装在不同的 PC 中时显然需要更改。我的问题是,如何让 app.config 文件与 Setup 文件一起使用,以便以后进行配置?

【问题讨论】:

  • 配置文件是否可能与您的 exe/dll 文件同名,带有配置扩展名?

标签: c# visual-studio-2008 app-config


【解决方案1】:

app.config 在编译过程中被复制/重命名为.config,并放置在 bin 目录中。如果您使用的是 Visual Studio 安装程序项目 (blech!),那么它应该也将其拾取并将其包含在安装程序 IIRC 中。

(回应您对两个答案的评论)

您不能继续将其用作“app.config”。 .NET 配置系统搜索与入口程序集同名的配置文件。如果您将文件重命名为“app.config”,那么配置类将停止工作。

【讨论】:

  • 是的,这是正确的。不过请注意,如何将文件名保留为 app.config?
【解决方案2】:

您的 app.config 文件在编译时被重命名为二进制文件的名称。 IE。如果您的二进制文件是 myapp.exe,那么您的 app.config 将重命名为 myapp.config 或 myapp.exe.config。

这是您应该添加到安装包中的文件,以便在部署时使用它进行配置。

【讨论】:

  • 看起来是这样的。我能够找到该文件。只是想知道,为什么不保留 app.config 的名称,还是为了方便起见。
  • @Gunner - 假设您正在创建一套工具,您希望将其安装到同一目录中。他们需要一种查找他们的配置文件的方法,这就是为什么他们要查找的配置与他们自己的名称相同的原因+“.config”。它在项目中保存为 app.config,因为您可以随时在项目设置中更改输出程序集的名称。
  • 为了方便起见,我想(但不确定)配置文件是根据二进制文件命名的。 Visual Studio 似乎更喜欢使用 app.config,但是在项目编译后,它被重命名为 *.exe.config。我想这样做是为了能够在同一目录中拥有许多二进制文件和配置。不过,必须查明确切原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-19
  • 2019-09-18
  • 2018-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-28
相关资源
最近更新 更多