我发布了一个以DLL形式存在少量依赖关系的ClickOnce应用程序。当我发布初始版本0.0.1
时,所有依赖项都会像我期望的那样被复制到部署文件夹中。
如果我进行更新并发布版本0.0.2
,所有相同的依赖项(未更改且具有相同的文件哈希)将复制到部署文件夹中的第二个子文件夹中。
文件夹结构如下所示:
deployment/
MyApplication.application
setup.exe
Application Files/
MyApplication_1_0_0_1/
Dll_A.dll - Hash: 0x111111111111111
Dll_B.dll - Hash: 0x222222222222222
MyApplication_1_0_0_2/
Dll_A.dll - Hash: 0x111111111111111
Dll_B.dll - Hash: 0x222222222222222
当它们是同一个文件时,有没有办法只有一个Dll_A.dll / Dll_B.dll副本,如果它们发生变化,只有一个新副本?
我指的是开发人员目录中的目录大小。不是客户端拥有的下载和缓存的大小,因为我理解ClickOnce已经注意尽量减少这一点。
答案 0 :(得分:1)
我的问题来自对Application Files
目录如何运作的误解。
是的,每次都有一个包含相同DLL的新文件夹,但是为了升级工作,您不需要保留其中的所有文件夹。除了最新版本之外,您可以删除所有这些内容并且没有任何不良影响。
即使某人处于版本/错过升级之间,他们也只会在程序更新时提取最新版本。他们不需要他们错过的中间版本。
答案 1 :(得分:0)
我不相信ClickOnce允许那种粒度的控制。
编辑: 发现这一点,它可能有助于你的清理问题。 ClickOnce deployment is leaving multiple versions (yes, more than two)