如何在发布期间自动将我的类库中的自定义配置文件包含到我的可执行项目中?

时间:2011-10-12 12:25:29

标签: c# visual-studio-2008 windows-services configuration-files

我有一个VS2008解决方案,其中包含许多类库和一个可执行项目(Windows服务)。我的一个类库是第三方组件的包装器,允许进行大量配置,因此我创建了一个名为3rdPartyConfig.xml的自定义XML文档和一个名为3rdPartConfig.cs的强类型解析类。

由于我的可执行项目引用了该类库,当应用程序运行时,它将在其执行位置中查找XML文件。为此,我在3rdPartyConfig.xml上设置了以下属性:

  • 设置Build Action = Content
  • 设置Copy to output Directory = Copy always

当我在调试配置中运行时,我可以看到3rdPartyConfig.xml已被复制到构建输出文件夹。该应用程序运行正常,能够读取该文件。但是,当我发布为 Release 时,Visual Studio 不会复制XML文件,因此当应用程序运行时,它无法找到它。

我该怎么做才能确保我的自定义配置文件包含在Release版本输出中?我是否需要编写构建前或构建后的脚本?

警告:

  • 我知道解决方法是废弃XML文件并将配置添加到app.config。我被要求这样做(客户希望能够轻松替换配置文件)。
  • 另一种解决方法是将配置信息存储在数据库中。客户也不愿意这样做。
  • 我已经调整了在处理Windows服务时“执行位置”变得模糊的事实。请放心我的代码 检查已安装的位置, c:\windows\system32

谢谢!

2 个答案:

答案 0 :(得分:3)

只需编辑文件解决方案中的“复制到输出目录”属性: enter image description here

答案 1 :(得分:0)

你能不能只将配置文件添加为可执行项目的链接,并将其设置为如果更新则复制到发布目录?