我们有一个我编写的应用程序,很多年来我一直通过ClickOnce推送更新。应用程序位于我们的主文件服务器上。但是每次我推送更新时,我都会被问到我做了什么改变!有没有办法为ClickOnce的更新提供一个用户友好的个性化描述?例如,当用户启动他们的应用程序时,ClickOnce会询问“有新版本可用。您想要更新吗?”,下面我可以对我更新的内容进行描述。或者这对于ClickOnce来说是不可能的吗?
发布于 2013-09-21 06:45:48
我是这样做的。我在我的启动代码中以发布模式调用此方法:
using System.Deployment.Application;
...
private void DisplayChangeLog()
{
if (!ApplicationDeployment.IsNetworkDeployed)
return;
if (!ApplicationDeployment.CurrentDeployment.IsFirstRun)
return;
ThreadPool.QueueUserWorkItem(state =>
Execute.OnUIThread(() => <Pop up window with latest changes> ));
}我知道这不是你想要的,因为它在用户第一次运行应用程序时显示,但在之后显示他们已经安装了更新。在我们的环境中,用户没有选择是否更新,所以没有真正的区别。
发布于 2013-06-27 20:29:15
将ClickOnce作为标准是不可能的。如果您想向用户显示有关更改的消息,那么您将需要自己实现它。一种方法是禁用自动更新,然后启用check for updates programatically。然后,您可以使用该版本从XML文件或类似文件中获取更改,并将其显示给用户。
或者,你可以只提供一个超文本标记语言格式的changelog或者其他更简单的东西。
例如,请参阅堆栈溢出问题。
无论哪种方式,一般来说,如果有更新,为什么用户不想要它呢?
发布于 2013-06-27 20:35:20
最近,我花了相当多的时间来研究和以编程方式操作在发布ClickOnce应用程序期间生成的清单文件,我还没有看到一种方法来添加您想要的那种自由表单描述,当然也没有一种方法可以通过Visual Studio提供的向导或UI来实现。
(警告:我将在明天的工作中仔细检查这一点,以确保完全没有办法-但您应该假设没有办法。)
https://stackoverflow.com/questions/17343101
复制相似问题