【问题标题】:Including xml files when deploying WPF application部署 WPF 应用程序时包含 xml 文件
【发布时间】:2011-04-05 06:02:10
【问题描述】:

我有一个包含 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 不会将这些文件复制到应用程序的数据文件夹中。

【问题讨论】:

    标签: wpf xml file deployment inclusion


    【解决方案1】:

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

    希望对有需要的人有所帮助。

    【讨论】:

      【解决方案2】:

      clickonce 使用了 2 个位置:

      • 主可执行文件和所有必要 dll 的位置
      • 所有不可执行的东西的位置,即资源,比如你的 xml

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

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

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

      【讨论】:

      • 谢谢。我试着给数据目录寻址。但问题似乎是在发布应用程序时没有复制 XML 文件本身。如果我在主项目下有 XML 文件,它们将被复制到 ClickOnce 创建的文件夹中。但是我的 XML 文件不在主项目中;它们被添加到非主项目中。我检查了包含安装文件的文件夹,但在那里找不到我的任何 XML 文件。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-10
      • 1970-01-01
      • 2011-02-26
      • 2020-12-14
      相关资源
      最近更新 更多