Member 13486242 Ответов: 1

Applicationdeployment.isnetworkdeployed возвращает false


я публикую обновления на веб-сервере и обычно загружаю и устанавливаю их программно.
я помещаю следующий код, но он не работает.

If (ApplicationDeployment.IsNetworkDeployed) Then


если условие возвращает false и код не выполняется.

Что я уже пробовал:

Imports System.Deployment.Application

Public Class Form1
    Private Sub InstallUpdateSyncWithInfo()

        Dim info As UpdateCheckInfo = Nothing
        System.Diagnostics.Debugger.Launch()
        If (ApplicationDeployment.IsNetworkDeployed) Then
            Dim AD As ApplicationDeployment = ApplicationDeployment.CurrentDeployment
            MsgBox("inside if ")
            Try
                info = AD.CheckForDetailedUpdate()
            Catch dde As DeploymentDownloadException
                MessageBox.Show("The new version of the application cannot be downloaded at this time. " + ControlChars.Lf & ControlChars.Lf & "Please check your network connection, or try again later. Error: " + dde.Message)
                Return
            Catch ioe As InvalidOperationException
                MessageBox.Show("This application cannot be updated. It is likely not a ClickOnce application. Error: " & ioe.Message)
                Return
            End Try

            If (info.UpdateAvailable) Then
                Dim doUpdate As Boolean = True

                If (Not info.IsUpdateRequired) Then
                    Dim dr As DialogResult = MessageBox.Show("An update is available. Would you like to update the application now?", "Update Available", MessageBoxButtons.OKCancel)
                    If (Not System.Windows.Forms.DialogResult.OK = dr) Then
                        doUpdate = False
                    End If
                Else
                    ' Display a message that the app MUST reboot. Display the minimum required version.
                    MessageBox.Show("This application has detected a mandatory update from your current " & _
                        "version to version " & info.MinimumRequiredVersion.ToString() & _
                        ". The application will now install the update and restart.", _
                        "Update Available", MessageBoxButtons.OK, _
                        MessageBoxIcon.Information)
                End If

                If (doUpdate) Then
                    Try
                        AD.Update()
                        MessageBox.Show("The application has been upgraded, and will now restart.")
                        Application.Restart()
                    Catch dde As DeploymentDownloadException
                        MessageBox.Show("Cannot install the latest version of the application. " & ControlChars.Lf & ControlChars.Lf & "Please check your network connection, or try again later.")
                        Return
                    End Try
                End If
            End If
        End If
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        InstallUpdateSyncWithInfo()
    End Sub

End Class

Graeme_Grant

Это установленное приложение ClickOnce? Я спрашиваю как то Класс ApplicationDeployment (System.Развертывание.Приложение)[^] предназначен для установленных приложений ClickOnce...

1 Ответов

Рейтинг:
2

Graeme_Grant

Если это касается приложения ClickOnce, ознакомьтесь с моей статьей на эту тему: Бесшумный установщик ClickOnce для Winform & WPF в C# & VB[^] - это фреймворк ClickOnce, который вы можете использовать в своем приложении + имеет инструкции о том, как тестировать локально на вашем dev box.