我有一个 WPF 应用程序,其中包含 3 个项目来表示 3 层体系结构。将一个项目设置为主项目。我在其中一个非主项目中有一些XML文件。这些 XML 文件由该项目的类中定义的函数访问。
当我尝试使用 VS2010 ClickOnce 发布应用程序时,即使将文件的"生成操作"标记为"内容"和"复制到输出目录"标记为"始终复制",XML文件也不会包含在安装文件中。运行已安装的应用程序时,应用程序报告找不到文件。我可以在 ClickOnce 生成的安装文件夹中看到一个Application_Files文件夹,但它不包含 XML 文件。
因此,我的问题是如何在安装文件夹中包含XML文件,并在运行应用程序时获取其位置URL。
谢谢纳文
更新 1:应用程序解决方案结构由三个项目组成,例如 P1、P2 和 P3。P3 是主要的启动项目。P1 和 P2 是类库项目。XML 文件将添加到 P2 项目中。这些文件标记为"生成操作"-">内容"和"复制"->"始终复制"。但是,在发布应用程序时,ClickOnce 不会将这些文件复制到应用程序的数据文件夹中。
简单的解决方案。右键单击要发布的项目文件。选择属性。然后在打开的窗口中选择"发布"。点击 应用文件 按钮。在那里,找到.xml文件,默认情况下它将键入"数据文件"。将其更改为"包括"。保存重建并发布,仅此而已。
希望它能帮助有需要的人。
2 个位置 clickOnce 使用:
- 主可执行文件和所有必需的 DLL 的位置
- 所有不可执行的内容(即资源)的位置,例如您的 XML
因此,您有一个应用程序目录和一个数据目录。寻址应用程序目录仍然可以像这样完成AppDomain.CurrentDomain.BaseDirectory
。
但是,如果要解决数据目录,则需要特定于clickonce的内容:ApplicationDeployment.CurrentDeployment.DataDirectory
。
我不确定您是否检查过该数据目录,因为您没有在帖子中提及它。