1

好吧,我要疯了。

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

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

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

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

有任何想法吗?我在这里疯了!

4

1 回答 1

1

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

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

您也可以输入文件版本(也可以在项目属性> 应用程序> 程序集信息...下),但它永远不会出现在应用程序清单中。

于 2014-02-25T16:33:36.043 回答