如何删除离线 clickonce 应用程序的早期版本

发布于 2024-12-11 02:57:24 字数 675 浏览 0 评论 0原文

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

ApplicationDeployment.CurrentDeployment.Update

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

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

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

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

We have an net 4.0 winforms application that we publish with clickonce to the client pc's. The installation is about 80 MB. The application is offline available and the update occurs in the startup of the app using

ApplicationDeployment.CurrentDeployment.Update

Each time we do an update of the application everything works fine and each client gets udpated. However the application cache keeps growing in size... We noticed that more then two versions are kept in the LocalAppData folder. The size of the clickonce installation folder is more then 1GB.

ClearOnlineAppCache works only for online applications and we don't find any information to clean the LocalAppData for offline application.

Is there any way to manage previous versions of our application in the LocalAppData folder from our client pc's?

Update:
We removed our custom update code and used the update mechanism of the Clickonce framework. Now old versions are removed properly and only two versions are kept in LocalAppData. I have still no idea why all versions are kept when we update through the custom update code.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

感情旳空白 2024-12-18 02:57:24

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

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

I've seen this issue before, but I clarified with the ClickOnce lead at Microsoft before answering.

It keeps two versions of the deployment plus there are extra folders for each assembly. When processing an update, ClickOnce figures out which files have changed by comparing against the assembly it has already cached, and it only downloads the ones that have changed. The deployment folders have hard links to the assemblies in the separate folders. So you might see additional files, but it's not actually the file, it's a link to the files in the assembly-only folders. Explorer will show it as a file, but it's not. So unless you're running out of disk space and are just concerned about the folder size, be aware that the information reported by Windows Explorer may not be accurate.

白云悠悠 2024-12-18 02:57:24

这个问题有一个答案这里

我编写了一个函数来清理客户端中的旧 ClickOnce 版本。

在我的机器中,我释放了 6Gb 的空间。我什至不想知道旧版本组织范围内使用的总空间......

There is an answer to this problem here

I wrote a function to clean old ClickOnce versions in the client side.

In my machine I've freed 6Gb of space. I don't want to even know the total space used by old versions org wide...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文