winforms – 如何删除以前版本的脱机clickonce应用程序

我们有一个net 4.0
winforms应用程序,我们通过clickonce发布到客户端pc.安装大约80 MB.应用程序可脱机使用,更新发生在应用程序的启动中

ApplicationDeployment.CurrentDeployment.Update

每次我们对应用程序进行更新时,一切正常,每个客户端都会得到更新.但是,应用程序缓存的大小不断增长…我们注意到LocalAppData文件夹中保存了两个以上的版本. clickonce安装文件夹的大小超过1GB.

ClearOnlineAppCache仅适用于在线应用程序,我们找不到任何信息来清除LocalAppData以进行脱机应用程序.

有没有办法从我们的客户端PC的LocalAppData文件夹中管理我们的应用程序的早期版本?

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

最佳答案 我以前见过这个问题,但在回答之前,我在微软的ClickOnce主管上做了澄清.

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

点赞