我有一个由 ClickOnce 安装/更新的 VSTO Excel 模板项目。如果我运行自动更新,它会更新得很好,但我想为用户提供手动更新的选项。
问题是执行 ApplicationDeployment.CurrentDeployment.UpdateAsync(或 .Update)不会导致任何错误,但部署根本不会更新。添加/删除程序中的版本号保持不变,更不寻常的是,ApplicationDeployment.IsNetworkDeployed 标志切换为 false。
因此,运行 .Update 的唯一效果似乎是将 IsNetworkDeployed 设置为 false。完整的代码有点长,但基本上可以归结为:
Private Sub ThisWorkbook_Startup() Handles Me.Startup
Dim info As UpdateCheckInfo
If ApplicationDeployment.IsNetworkDeployed Then
Dim AD As ApplicationDeployment = ApplicationDeployment.CurrentDeployment
info = AD.CheckForDetailedUpdate
If info.UpdateAvailable Then
AD.UpdateAsync()
End If
End If
End Sub