1

我有一个带有正在运行的数据库的应用程序。我添加了我需要的所有 dll、exe 和 db 文件。这些是不会被编译的内容。所以我将他们的构建操作设置为“内容”,将他们的复制到输出目录设置为“如果更新则复制”。有了这个,每次我发布更新版本的应用程序时,我只稍微更改一个文件,但仍然重新下载所有文件。我在这里环顾四周,显然所有文件都有一个哈希值。但他们似乎没有给我一个答案,告诉我如何发布应用程序的新版本,并让最终用户只下载已更改的文件?

4

2 回答 2

1

正如您所指出的,这些文件是散列的。安装更新时,ClickOnce 会根据本地版本检查服务器上的文件,如果它们相同,则不会再次下载它们,而是从本地目录复制它们。

我相信这实际上只适用于程序集。如果您查看 ClickOnce 缓存,您会发现部署中的每个程序集都被复制到其自己的文件夹中 - 这有点像 ClickOnce 使用的迷你缓存,这是它在进行比较时检查的内容。

其他资源可能会发生这种情况,但我不会打赌。正如 eoghank 所指出的,您可以使用 fiddler 来验证这一点。

于 2012-05-31T05:14:12.863 回答
0

您确定正在重新下载未更改的文件吗?使用提琴手检查,ClickOnce 下载对话框始终通过下载大小指示正在重新下载所有文件,但并非总是如此。

于 2012-05-25T08:21:49.310 回答