C# 在发布期间,如何将类库中的自定义配置文件自动包含到可执行项目中?
我有一个VS2008解决方案,它包含许多类库和一个可执行项目(windows服务)。我的一个类库是第三方组件的包装器,它允许进行大量配置,因此我创建了一个名为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
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
谢谢 您是否可以将配置文件添加为可执行项目的链接,并将其设置为复制到发布目录(如果更新)?只需在解决方案中为您的文件编辑“复制到输出目录”属性:
谢谢您的回复。我忘了提到我也试过了。如屏幕截图所示,将
构建操作
设置为内容
就是解决这个问题的方法。另外,我已将复制到输出目录
设置为始终复制
。这可能会起作用,但您能否详细解释一下如何实现这一点?