gpt4 book ai didi

ClickOnce 应用程序文件下载组

转载 作者:行者123 更新时间:2023-12-02 05:54:22 26 4
gpt4 key购买 nike

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

  • MyProgram.exe(中等大小)
  • MyProgram.exe.config(小尺寸)
  • MyMenu.xml(小尺寸)
  • Shared.dll(中等大小)
  • ThirdParty1.dll(X-大尺寸)
  • ThirdParty2.dll(X-大尺寸)
  • ThirdParty3.dll(X-大尺寸)
  • OtherThirdParty1.dll(X-大尺寸)
  • OtherThirdParty2.dll(X-大尺寸)
  • OtherThirdParty3.dll(X-大尺寸)

  • 我试图在 中设置组申请文件像这样的部分:

    第三方
  • 第三方1.dll
  • ThirdParty2.dll
  • ThirdParty3.dll

  • 其他第三方
  • OtherThirdParty1.dll
  • OtherThirdParty2.dll
  • OtherThirdParty3.dll

  • (必填)
  • MyProgram.exe
  • MyProgram.exe.config
  • MyMenu.xml
  • Shared.dll

  • 我遇到了一个问题,我的程序出错,因为它找不到任何第三方或其他第三方 DLL。我检查了 ClickOnce 安装这些文件的位置,并将其放在与我的可执行文件完全不同的文件夹中。

    如果它们没有保存在同一位置,那么创建不同的文件组有什么意义?我想使用它,所以当我的程序更新时,我不必下载所有内容,只需下载更改即可。其中一些第三方 DLL 的大小为 10-15 mb,我有多达 1000 个连接速度较慢的客户端,因此这需要大量带宽,并且客户端需要大量下载。

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

    最佳答案

    我无法通过 ClickOnce 中的文件组解决您的问题 - 我从未使用过它们。但是,如果您唯一担心的是 3rd 方 dll 仅下载一次,则无需理会它们。

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

    只要您的第 3 方 dll 没有改变,为它们生成的哈希值将始终相同。所以它们应该只下载一次。

    还有一件事,完全忽略 ClickOnce 下载进度条上的文件大小。即使它只下载一个文件,它也始终显示您的应用程序的完整大小。如果你想自己测试,使用 Fiddler监视 ClickOnce 应用程序启动时发生的情况。

    关于ClickOnce 应用程序文件下载组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4219081/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com