ClickOnce应用程序文件下载组

Mil*_*les 2 clickonce

我有一个应用程序,我想使用ClickOnce进行部署.以下是我需要的一些文件:

  1. MyProgram.exe(中等大小)
  2. MyProgram.exe.config(小尺寸)
  3. MyMenu.xml(小尺寸)
  4. Shared.dll(中等大小)
  5. ThirdParty1.dll(X-大尺寸)
  6. ThirdParty2.dll(X-大尺寸)
  7. ThirdParty3.dll(X-大尺寸)
  8. OtherThirdParty1.dll(X-大尺寸)
  9. OtherThirdParty2.dll(X-大尺寸)
  10. OtherThirdParty3.dll(X-大尺寸)

我试图在" 应用程序文件"部分中设置组,如下所示:

第三方

  1. ThirdParty1.dll
  2. ThirdParty2.dll
  3. ThirdParty3.dll

OtherThirdParty

  1. OtherThirdParty1.dll
  2. OtherThirdParty2.dll
  3. OtherThirdParty3.dll

(需要)

  1. MyProgram.exe
  2. MyProgram.exe.config
  3. MyMenu.xml
  4. Shared.dll

我遇到了一个问题,我的程序错误,因为它找不到任何ThirdParty或OtherThirdParty DLL.我检查了ClickOnce安装这些文件的位置,并将其放在一个完全独立的文件夹中,而不是我的可执行文件.

如果不将文件保存在同一位置,创建不同文件组的重点是什么?我想使用它,所以当我的程序更新时,我不必下载所有内容,只需更改.其中一些第三方DLL的大小为10-15 mb,我有多达1000个客户端连接速度慢,因此它为用户提供了大量带宽和大量下载.

我应该如何设置它,以便当MyProgram.exe中的某些内容发生变化时,我可以让客户端下载尽可能少的文件(没有来自ThirdParty和OtherThirdParty组)?

cod*_*ion 8

我无法解决您在ClickOnce中使用文件组的问题 - 我从未使用它们.但是,如果您唯一担心的是第三方dll只下载一次并且只下载一次,那么您就不需要打扰它们.

ClickOnce根据哈希值智能地下载文件.如果有关文件的任何内容发生更改(日期,大小,内容等),则其哈希值将发生变化.在新版本发布后启动ClickOnce应用程序时,它会将客户端的所有文件哈希值与服务器上的文件哈希值进行比较,并仅下载已更改的内容.

只要你的第三方dll没有改变,为它们生成的哈希将始终是相同的.所以他们应该只下载一次.

还有一件事,完全忽略ClickOnce下载进度条上的文件大小.它总是显示您的应用程序的完整大小,即使它只下载一个文件.如果您想自己测试,请使用Fiddler监控ClickOnce应用程序启动时会发生什么.