【发布时间】:2011-06-29 14:24:54
【问题描述】:
我创建了一个控制台应用程序 (blah.exe),其中包含用于开发和生产的特定 app.config。它们被命名为dev_app.config 和prod_app.config。我在我的 csproj 文件* 中连接了一个AfterBuild 目标,它将正确的配置文件作为blah.exe.config 复制到bin 目录。
我还为此控制台应用程序创建了一个安装项目,但遇到了一个小问题。似乎安装项目使用了项目目录中的实际app.config,而不是最终的blah.exe.config(位于 bin 目录中)。
|--Bin
| |--Debug
| |--Blah.exe.config <--- I want the setup project to use this file
|--app.config <--- Setup project uses this file at the moment
|--dev_app.config
|--prod_app.config
如何强制安装项目使用 bin 文件夹中生成的最终配置文件,而不是实际的 app.config 文件?
附加信息:
我当前的解决方案包括添加另一个 AfterBuild 命令,它会覆盖实际的 app.config 文件。我不喜欢这种方法,因为它迫使我拥有一个我不需要的附加文件。此外,自从我对 app.config 文件进行了更改,该文件在构建时被覆盖,因此拥有此文件已经让我有些悲伤。问题是关于如何让安装项目使用 bin 文件夹中的最终配置文件,NOT 如何管理配置或创建配置文件的方法。
【问题讨论】:
-
您是否使用 DEBUG 版本进行开发,发布版本用于生产?如果是这样,您可以看看使用#if DEBUG msdn.microsoft.com/en-us/library/4y6tbswk.aspx 并可能基于使用msdn.microsoft.com/en-us/library/ms223161.aspx 加载不同的配置文件
-
@astander,是的,
dev_app.config用于调试,prod_app.config用于发布。 -
不知道你为什么要这样做。创建适合部署的基本 .config 文件。只为调试配置创建一个特殊的。部署发布版本。
-
@astander - 请澄清一下,我将在哪里实施您的建议。在我的控制台应用程序中?如果是这样,那对我来说没有意义,因为正确的文件已复制到我的 bin 文件夹中。
-
假设您关心 appSettings 值,另一种选择是使用“file”属性来覆盖调试方案的设置。
。然后在调试文件夹中创建您自己的 custom.config 文件以根据需要覆盖值。
标签: c# visual-studio-2010 installation setup-project