Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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# 在发布期间,如何将类库中的自定义配置文件自动包含到可执行项目中?_C#_Visual Studio 2008_Windows Services_Configuration Files - Fatal编程技术网

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

C# 在发布期间,如何将类库中的自定义配置文件自动包含到可执行项目中?,c#,visual-studio-2008,windows-services,configuration-files,C#,Visual Studio 2008,Windows Services,Configuration Files,我有一个VS2008解决方案,它包含许多类库和一个可执行项目(windows服务)。我的一个类库是第三方组件的包装器,它允许进行大量配置,因此我创建了一个名为3rdPartyConfig.XML的自定义XML文档和一个名为3rdPartConfig.cs的强类型解析类 由于我的可执行项目引用了该类库,所以当应用程序运行时,它将在其执行位置查找XML文件。为此,我在3rdPartyConfig.xml上设置了以下属性: 设置buildaction=Content 设置Copy to output

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

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

  • 设置
    buildaction=Content
  • 设置
    Copy to output Directory=Copy always
在调试配置中运行时,我可以看到
3rdPartyConfig.xml
已复制到生成输出文件夹。该应用程序运行良好,能够读取文件。但是,当我发布为发行版时,VisualStudio不会复制XML文件,因此当应用程序运行时,它无法找到它

如何确保我的自定义配置文件包含在版本生成输出中?我需要编写构建前脚本还是构建后脚本

注意事项:

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

谢谢

您是否可以将配置文件添加为可执行项目的链接,并将其设置为复制到发布目录(如果更新)?

只需在解决方案中为您的文件编辑“复制到输出目录”属性:

谢谢您的回复。我忘了提到我也试过了。如屏幕截图所示,将
构建操作
设置为
内容
就是解决这个问题的方法。另外,我已将
复制到输出目录
设置为
始终复制
。这可能会起作用,但您能否详细解释一下如何实现这一点?