我们已经使用clickonce将WPF应用程序发布到网络共享中。该应用程序仅在线可用。 Windows在客户端计算机上更新KB4515842之后,我们开始遇到如下所述的问题。尚未对应用程序进行任何更改。
当我使用IE启动应用程序时,它已下载并正确启动。但是,该应用程序的某些部分无法像以前那样工作。我们有一个带有不同类型项目模板的列表视图。选择一个项目时,根据列表视图中该项目的所选类型,使用模板在区域中显示其他信息。使用DataTemplateSelector选择模板,并将列表视图中的选定项目作为输入。更新后不会触发DataTemplateSelector,因此不会显示所选项目的信息。
该应用程序使用.Net 4.5.2。 Windows 7和Windows 10均会出现问题。
仅通过网络共享启动应用程序时,才会出现此问题。在Visual Studio中或从.. \ AppData \ Local \ Apps \ 2.0 ...启动clickonce安装的应用程序时都没问题。
当我离线部署应用程序(创建开始菜单项等)时,它也起作用
卸载更新也可以解决该问题。在Windows 7上,我在Windows 10 KB4524098(都包括KB4515842)上卸载了KB4519568。
关于接下来要尝试什么的任何想法?
答案 0 :(得分:0)
我找到了问题的原因,所以如果有人遇到相同的问题,我将发布解决方案。
列表视图中的Selected项与我们的视图模型中的属性绑定。 viewmodel中的属性看起来与此类似:
public Shared.Task SelectedTask
{
get
{
return _selectedTask;
}
private set
{
_selectedTask = value;
OnPropertyChanged(() => SelectedTask);
}
}
我不确定如何将其与属性的设置部分上的私有访问修饰符一起使用,但是它以前已经起作用,并且在Visual Studio 2017中以及运行clickonce应用程序的已安装版本时仍然可以使用。无论如何,当我将集合公开时,它也适用于我们的网络部署的clickonce应用程序(为SelectedTask触发了PropertyChanged事件,侦听SelectedTask更改的DataTemplateSelector返回一个新的DataTemplate)。