Winforms 如何删除脱机clickonce应用程序的早期版本

Winforms 如何删除脱机clickonce应用程序的早期版本,winforms,installation,clickonce,Winforms,Installation,Clickonce,我们有一个net 4.0 winforms应用程序,通过clickonce发布到客户端pc。安装大约为80MB。应用程序脱机可用,并且在使用启动应用程序时进行更新 ApplicationDeployment.CurrentDeployment.Update 每次我们对应用程序进行更新时,一切都很正常,每个客户端都得到了支持。但是,应用程序缓存的大小一直在增长。。。我们注意到LocalAppData文件夹中保存了两个以上的版本。clickonce安装文件夹的大小超过1GB 仅适用于在线应用程序,

我们有一个net 4.0 winforms应用程序,通过clickonce发布到客户端pc。安装大约为80MB。应用程序脱机可用,并且在使用启动应用程序时进行更新

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

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

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

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

我以前见过这个问题,但在回答之前,我与微软的ClickOnce负责人进行了澄清


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

我们的磁盘空间还没有用完,但是CheckForUpdate方法需要很长时间来检测是否有新的更新可用。当我们清除LocalAppData文件夹中的文件并运行我们的应用程序时,CheckForUpdate会正常运行,直到第5次或第6次更新…这里也有同样的问题。只有我们不能更改为默认值,因为我们的自定义更新行为。