2011-04-05 57 views
8

我有一个WPF应用程序,其中包含3个项目来表示3层体系结构。一个项目被设定为主项目。我在其中一个非主项目中有一些XML文件。这些XML文件可以通过在该项目的类中定义的函数来访问。部署WPF应用程序时包含xml文件

当我尝试使用VS2010 ClickOnce发布应用程序时,甚至在将文件的构建操作标记为“内容”和“复制到输出目录”为“始终复制”之后,XML文件未包含在安装文件中。当运行已安装的应用程序时,应用程序报告找不到文件。我可以在由ClickOnce生成的安装文件夹中看到一个Application_Files文件夹,但它不包含XML文件。

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

感谢, 纳文

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

回答

1

有一个2个位置的ClickOnce用途:

  • 主可执行文件和所有必需的dll的
  • 一切的位置的位置是不可执行的,即资源,像你的XML

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

但是,如果你想要解决数据目录,你需要一些特定的clickonce:ApplicationDeployment.CurrentDeployment.DataDirectory

我不确定你是否检查过数据目录,因为你没有在你的文章中提到它。

+1

谢谢。我试着给数据目录寻址。但是这个问题似乎是在发布应用程序时XML文件本身没有被复制。如果我在主项目下有XML文件,它们将被复制到由ClickOnce创建的文件夹中。但我的XML文件不在主项目中;它们被添加到非主项目中。我用安装文件检查了该文件夹,但找不到我的任何XML文件。 – naveen 2011-04-05 07:13:08

6

简单的解决方案。 右键点击您要发布的yo项目文件。 选择属性。 然后在打开的窗口中选择发布。 点击Apllication files按钮。 在那里,找到yo .xml文件,默认情况下它将是'数据文件'类型。将其更改为包含。 保存重建并发布它。

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

相关问题