3

ユーザーがクリック ワンスを使用して特定のバージョンに更新できるようにしたいと考えています。現在、ヘルプがあります | 最新バージョンに更新されるだけの更新プログラムを確認します。

ヘルプを追加したい | バージョンに更新します (ユーザーが入力できるバージョン番号を求めるプロンプトが表示され、そのバージョンに更新されます (現在、下位バージョンまたは上位バージョンの両方))。

アプリケーションは c# を使用して開発されています

  • たとえば、コントロール パネルなどからロールバックできることはわかっていますが、アプリ内で現在のバージョンより上位または下位の特定のバージョンに移動する機能が必要です。 .
4

3 に答える 3

2

私はこの機能を実装するために、各パブリッシュ後にユーザーが詳細な指示を必要とせずに少し追加作業を行うだけで済みました。これが特定のバージョンを取得する方法は、バージョンごとに複数の clickonce ディレクトリが必要なことです。

公開したら、メモ帳で myApplication.application を開いて変更する必要があります

<deploymentProvider codebase="http://www.example.com/ClickOnce/MyApplication/MyApplication.application" />

<deploymentProvider codebase="http://www.example.com/ClickOnce/MyApplication1.02.03.45/MyApplication.application" />

または、利用可能にするバージョン。clickonce にアップロードする前に。

ユーザーが特定のバージョンを取得する方法は次のとおりです

    Public Shared Sub GetSpecificVersion()
            Try
                Dim spre As String = InputBox("press enter to download the current version of myApplication. If you would want to download a specific version of myApplication please append the version number  i.e myApplication1.02.03.45", , "myApplication") 
                Dim spost As String = "/myApplication.application"
                Dim finalUrl As String = "http://www.example.com/clickonce/"
                finalUrl = finalUrl & spre & spost
                Try
                    My.Computer.Network.DownloadFile(finalUrl, "C:/ProgramFiles", Nothing, Nothing, Nothing, 

1000, True) 'url/filename/username/password/showui/timeout/overwriteExiting
                Process.Start("C:/ProgramFiles/myApplication.application")
                Application.Current.Shutdown()
                Dim r As String
            Catch ex As Exception
                MsgBox("The desired version of myApplication may not be typed correctly or is unavailable on clickonce. alternatively a connection could not be established to the clickonce server")
                MsgBox(ex.ToString())
            End Try
        Catch ex As Exception
            MsgBox(ex.ToString())
        End Try
    End Sub

特定のバージョンを取得するには、バージョン「myApplication1.02.34」を入力するだけです。

これの副作用は、マニフェストを使用して連続する更新をチェックすると、その特定のフォルダーのみがチェックされることです。デフォルトのディレクトリから最新バージョンを取得するための 2 つ目の方法を作成しました。

中央バージョンを入手するにはこちら

Public Shared Sub GetLatestCentralizedVersion()
Try
              My.Computer.Network.DownloadFile("http://www.example.com/clickonce/myApplication/myApplication.application", "C:/ProgramFiles/myApplication.application", Nothing, Nothing, Nothing, 1000, True) 'url/filename/username/password/showui/timeout/overwrite
            Process.Start("C:/ProgramFiles/myApplication.application")
            Application.Current.Shutdown()
        Catch ex As Exception
            MsgBox(ex.ToString())
        End Try
    End Sub
于 2013-10-18T11:39:45.393 に答える