Clickonce疯狂

时间:2013-02-22 16:45:08

标签: c# clickonce

好的,我快要疯了。

我们有一个我们通过clickonce部署给我们的UAT用户的软件包,为他们提供了一个URL,可以通过HTML页面链接下载它。直到最近我们还没有对任何软件包进行版本化,所以它们都有版本1.0.0.0 - 最终结果是当我们向UAT发布新版本时,他们不得不卸载旧版本,然后才能下载新版本。以为他们是相同的应用程序身份。由于他们没有管理员权限,这有点问题,导致他们不得不删除c:\ documents和settings \ username ......中的文件,用于clickonce并删除注册表项,

他们安装的最后一个版本是UAT 5.我现在已经构建了一个UAT 6版本,其版本为6.0.0.0,因此如果他们点击启动链接,它应该只是自动下载而不必删除5它确实下载了一些东西,你可以看到它下载一个包 - 不仅仅是直接打开应用程序,如果没有更新 - 但是当应用程序打开时,它仍然是版本5,通过检查文件中的文件大小来确认和设置。

我个人可以点击相同的URL链接,然后为我下载版本6。我使用控制面板 - >添加删除程序以删除由于访问控制而无法删除的先前版本,但这是唯一的区别。

在他们的机器上,我可以删除所有文件,所有注册表设置,然后点击为我下载版本6的同一链接,不知何故,他们仍然最终下载了版本5.

有什么想法吗?我在这里疯了!

1 个答案:

答案 0 :(得分:1)

听起来好像客户端计算机正在检测到那里有一个新的发布包,但是EXE本身没有改变。为了节省时间/带宽,ClickOnce将在本地计算机的缓存中为先前下载的程序集提供其身份未更改的任何程序集。

换句话说,听起来好像是在更新Publish版本而不是Assembly版本。要使新程序集的标识不同,请确保更新程序集版本(在项目属性>应用程序>程序集信息...下)以及发布版本(在项目属性>发布下)。

您也可以投入文件版本(也在项目属性>应用程序>装配信息...下)以获得良好的衡量标准,但该应用清单中不会显示该文件。