如何在 ClickOnce 部署中包含许多附加文件?

Posted

技术标签:

【中文标题】如何在 ClickOnce 部署中包含许多附加文件?【英文标题】:How do you include many additional files with ClickOnce deployment? 【发布时间】:2016-03-27 01:26:29 【问题描述】:

我正在尝试将我的第一个 WPF、C# 应用程序部署到许多桌面。对于案例数据库中的大多数记录,我想将其与数据库分开存储,并在按下按钮时显示(PDF 文件名等于 ID 号)。它是一个仅限搜索的程序,用户不会将任何数据保存回数据库。大约有 32,000 个 pdf,而且这个数字还会增长。当我尝试在项目中列出这些文件并使用 ClickOnce 部署 VS 时说我已经超过了最大清单大小。

有没有办法使用 ClickOnce 部署我的应用程序,然后使用某种类型的安装后命令复制文件?谢谢。

【问题讨论】:

【参考方案1】:

将文件添加到您的项目中。将构建操作标记为Content,将Copy to local directory 标记为Always。然后它将在您的部署中包含这些文件。

您还可以检查“应用程序文件”对话框以查看它们是否存在。如果文件的文件扩展名是 XML 或其他表示数据的文件,您希望将选项从 Include(Data) 更改为 IncludeInclude(Required)。如果您将文件作为数据包含在内,则在部署后将其放入 DataDirectory。

在解决方案资源管理器中选择一个数据文件。 在“属性”窗口中,将“构建操作”属性更改为“内容”值

2。将文件标记为数据文件

在解决方案资源管理器中选择项目后,在“项目”菜单上单击“属性”。 单击“发布”选项卡。 单击“应用程序文件”按钮打开“应用程序文件”对话框。 在“应用程序文件”对话框中,选择要标记为数据的文件。 在“发布状态”字段中,从下拉列表中选择“数据文件”。

3。将文件标记为先决条件

在解决方案资源管理器中选择项目后,在“项目”菜单上单击“属性”。 单击“发布”选项卡。 单击“应用程序文件”按钮打开“应用程序文件”对话框。 在“应用程序文件”对话框中,选择您希望标记为先决条件的应用程序程序集(.dll 文件)。请注意,您的应用程序必须引用应用程序程序集才能显示在列表中。 在发布状态字段中,从下拉列表中选择先决条件。

Source: MSDN - How to: Specify Which Files Are Published by ClickOnce

【讨论】:

您是否曾经对 32,000 个文件进行过此操作?我确实尝试过这个,但是它让 VS 挂了很长时间,然后有一条消息说我的清单中超过了最大值,这让我觉得以这种方式包含的文件太多了。我希望这能奏效,因为它肯定会让生活变得轻松。 我相信这些说明仅适用于一次添加一个文件。这对于一些文件来说是可以的,但对于许多文件来说它变得难以处理。无法在“发布/应用程序文件...”对话框中选择多个文件并将它们全部标记为“数据”(例如)。 AFAIK 的唯一方法是在文本编辑器中编辑应用程序项目文件,并为要发布的文件名显式生成 xml。不幸的是,如果您超出清单限制,这将无济于事,但如果您想添加数百个文件,它确实有效。

以上是关于如何在 ClickOnce 部署中包含许多附加文件?的主要内容,如果未能解决你的问题,请参考以下文章

部署 ClickOnce 时缺少 dll

在 clickOnce 安装中包含 ACE OLEDB 12 驱动程序

如何在“sbt dist”在目标/通用内部生成的脚本文件夹中包含一个附加文件?

如何在 Visual Studio、C# 项目的部署中包含文件和文件夹?

在 WiX 中包含许多文件,但没有列出每个文件。

如何在用于部署的服务结构应用程序包中包含发布配置文件和应用程序参数?