如何删除以前版本的离线 clickonce 应用程序

Nik*_*iki 6 installation clickonce winforms

我们有一个 net 4.0 winforms 应用程序,我们通过 clickonce 发布到客户端 PC。安装大约 80 MB。应用程序离线可用,更新发生在应用程序启动时使用

ApplicationDeployment.CurrentDeployment.Update
Run Code Online (Sandbox Code Playgroud)

每次我们更新应用程序时,一切正常,每个客户端都会更新。然而,应用程序缓存的大小一直在增长......我们注意到在 LocalAppData 文件夹中保存了两个以上的版本。clickonce 安装文件夹的大小超过 1GB。

ClearOnlineAppCache仅适用于在线应用程序,我们找不到任何信息来清理离线应用程序的 LocalAppData。

有什么方法可以从我们的客户端 PC 的 LocalAppData 文件夹中管理我们应用程序的以前版本?

更新:我们删除了自定义更新代码并使用了 Clickonce 框架的更新机制。现在旧版本已被正确删除,LocalAppData 中仅保留两个版本。当我们通过自定义更新代码更新时,我仍然不知道为什么所有版本都保留。

Rob*_*Net 3

我以前见过这个问题,但在回答之前我向 Microsoft 的 ClickOnce 领导进行了澄清。

它保留了部署的两个版本,并且每个程序集都有额外的文件夹。处理更新时,ClickOnce 通过与已缓存的程序集进行比较来确定哪些文件已更改,并且仅下载已更改的文件。部署文件夹具有指向单独文件夹中的程序集的硬链接。因此,您可能会看到其他文件,但它实际上不是文件,而是指向仅程序集文件夹中的文件的链接。资源管理器会将其显示为文件,但事实并非如此。因此,除非您的磁盘空间不足并且只关心文件夹大小,否则请注意 Windows 资源管理器报告的信息可能不准确。