8

我有一个带有 3 个项目的 WPF 应用程序来表示一个 3 层架构。设置一个项目为主项目。我在非主项目之一中有一些 XML 文件。这些 XML 文件由该项目的类中定义的函数访问。

当我尝试使用 VS2010 ClickOnce 发布应用程序时,即使在将文件的 Build Action to Content 和 Copy-to-OutputDirectory 标记为 Copy Always 之后,XML 文件也不包含在安装文件中。运行已安装的应用程序时,应用程序报告未找到文件。我可以在 ClickOnce 生成的安装文件夹中看到一个 Application_Files 文件夹,但它不包含 XML 文件。

所以,我的问题是如何在安装文件夹中包含 XML 文件,并在运行应用程序时获取它们的位置 URL。

谢谢,纳文

更新 1:应用程序解决方案结构由三个项目组成,例如 P1、P2 和 P3。P3是主要的启动项目。P1 和 P2 是类库项目。XML 文件被添加到 P2 项目中。这些文件被标记为 Build Action -> Content and Copy -> Copy Always。但是,在发布应用程序时,ClickOnce 不会将这些文件复制到应用程序的数据文件夹中。

4

2 回答 2

6

简单的解决方案。右键单击要发布的项目文件。选择属性。然后在打开的窗口中选择发布。单击应用程序文件按钮。在那里,找到你的 .xml 文件,默认情况下该文件类型为“数据文件”。将其更改为包含。保存重建并发布,就是这样。

希望它可以帮助有需要的人。

于 2012-10-11T12:44:31.480 回答
1

有 2 个位置 clickonce 使用:

  • 主要可执行文件和所有必要 dll 的位置
  • 所有不可执行的位置,即资源,例如您的 xml

所以你有一个应用程序目录和一个数据目录。仍然可以像这样处理应用程序目录AppDomain.CurrentDomain.BaseDirectory

但是,如果您想处理数据目录,则需要特定于 clickonce: 的内容ApplicationDeployment.CurrentDeployment.DataDirectory

我不确定您是否检查过该数据目录,因为您没有在帖子中提到它。

于 2011-04-05T06:43:25.863 回答