【问题标题】:ClickOnce updates all files. Why?ClickOnce 更新所有文件。为什么?
【发布时间】:2010-08-24 08:48:13
【问题描述】:

我使用 ClickOnce 技术部署了小型 wpf 应用程序。问题是,当我构建新版本时,客户端会下载所有文件,尽管其中许多文件没有更改。我使用以下配置来制作部署清单

<GenerateDeploymentManifest AssemblyName="MyApp.exe.application"
  AssemblyVersion="1.0.0.0"
  DeploymentUrl="\\...\MyApp.exe.application"
  Product="Egs.Client"
  TargetCulture="ru-RU"
  Description="My application"
  Publisher="MyCompany"
  Install="true"
  UpdateInterval="1"
  UpdateUnit="Weeks"
  UpdateEnabled="true"
  UpdateMode="Background"
  OutputManifest="$(ApplicationFile)"
  MapFileExtensions="true"
  EntryPoint="@(DeploymentManifestEntryPoint)" />

即使我只是将“1.0.0.0”更改为“1.0.0.1”,客户端也会再次下载整个应用程序。 我是遗漏了什么还是它的标准行为?

【问题讨论】:

    标签: deployment clickonce


    【解决方案1】:

    如果程序集发生变化,它将被下载。重建装配算作更改。我通常会跳过 Visual Studio 来创建部署并改用 Mage。然后我将 Mage 指向构建所有程序集的 bin,我将它指向一个单独的文件夹,在该文件夹中手动复制我想要部署的程序集。有意义吗?

    【讨论】:

    • 您好,感谢您的回答。我也不使用 VisualStudio,我也使用 Mage 进行部署。如果我使用像 mage.exe -New ... 这样的命令,我对吗?那么所有文件都将被重新下载,而应该使用 mage.exe -Update 代替?
    • -New 或-Update 无关紧要。主要需要注意的是,如果您不希望部署程序集,则需要使用完全相同 程序集而不是该程序集的重建版本来构建新部署。 ClickOnce 对您的文件进行哈希处理,这就是它知道要下载什么的方式;它将客户端的文件哈希与服务器进行比较,下载任何不同的文件。对程序集执行任何操作,包括重建它,将导致生成不同的哈希,从而导致下载。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多