【问题标题】:Error when launching WPF clickonce application from network share从网络共享启动 WPF clickonce 应用程序时出错
【发布时间】:2019-11-06 13:53:59
【问题描述】:

我们有一个 WPF 应用程序使用 clickonce 发布到网络共享。该应用程序仅在线提供。在客户端计算机上的 Windows 更新 KB4515842 后,我们开始遇到如下所述的问题。没有对应用程序进行任何更改。

当我使用 IE 启动应用程序时,它会正确下载并启动。然而,应用程序的某些部分不能像以前那样工作。我们有一个列表视图,其中包含不同类型项目的模板。选择项目时,根据列表视图中项目的所选类型,使用模板在区域中显示附加信息。模板是使用 DataTemplateSelector 选择的,其中列表视图中的选定项目作为输入。更新后不会触发 DataTemplateSelector,因此不会显示所选项目的信息。

应用程序使用 .Net 4.5.2。 Windows 7 和 Windows 10 都会出现问题。

仅当应用程序通过网络共享启动时才会出现此问题。在 Visual Studio 中或从 ..\AppData\Local\Apps\2.0 启动 clickonce 安装的应用程序时没有问题...

当我将应用程序部署为离线可用时它也可以工作(创建的开始菜单项等)

卸载更新也可以解决问题。在 Windows 7 上,我卸载了 KB4519568,在 Windows 10 上卸载了 KB4524098(两者都包括 KB4515842)。

对接下来要尝试什么有什么想法吗?

【问题讨论】:

    标签: c# wpf clickonce


    【解决方案1】:

    我找到了问题的原因,所以如果有人遇到同样的问题,我会发布解决方案。

    列表视图中的选定项绑定到我们视图模型中的属性。视图模型中的属性类似于:

    public Shared.Task SelectedTask
    {
       get
       {
          return _selectedTask;
       }
       private set
       {
          _selectedTask = value;
          OnPropertyChanged(() => SelectedTask);
       }
    }
    

    我不确定这如何与属性的 set 部分上的私有访问修饰符一起使用,但它以前可以工作,并且在 Visual Studio 2017 和运行 clickonce 应用程序的已安装版本时仍然可以工作。无论如何,当我公开该集合时,它也适用于我们网络部署的 clickonce 应用程序(为 SelectedTask 触发 PropertyChanged 事件,并且侦听 SelectedTask 更改的 DataTemplateSelector 返回一个新的 DataTemplate)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-03
      • 1970-01-01
      • 1970-01-01
      • 2014-01-08
      相关资源
      最近更新 更多