Export (0) Print
Expand All

GetManifestCompletedEventArgs Class

Provides data for the GetManifestCompleted event of InPlaceHostingManager.


Namespace:  System.Deployment.Application
Assembly:  System.Deployment (in System.Deployment.dll)

Public Class GetManifestCompletedEventArgs _
	Inherits AsyncCompletedEventArgs

The GetManifestCompletedEventArgs type exposes the following members.

Public propertyActivationContextGets the context for the current ClickOnce application.
Public propertyApplicationIdentityGets a description of the ClickOnce application.
Public propertyApplicationManifestGets the ClickOnce application manifest for this deployment.
Public propertyCancelledGets a value indicating whether an asynchronous operation has been canceled. (Inherited from AsyncCompletedEventArgs.)
Public propertyDeploymentManifestGets the ClickOnce deployment manifest for this deployment.
Public propertyErrorGets a value indicating which error occurred during an asynchronous operation. (Inherited from AsyncCompletedEventArgs.)
Public propertyIsCachedGets a value indicating whether this ClickOnce application is cached.
Public propertyLogFilePathGets the location of the ClickOnce error log.
Public propertyProductNameGets the name of the ClickOnce application.
Public propertySubscriptionIdentityGets a string identifying the subscription.
Public propertySupportUriGets the location of a Web page users can visit to obtain product support for the ClickOnce application.
Public propertyUserStateGets the unique identifier for the asynchronous task. (Inherited from AsyncCompletedEventArgs.)
Public propertyVersionGets the version of the update for the ClickOnce application.

Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Protected methodRaiseExceptionIfNecessaryRaises a user-supplied exception if an asynchronous operation failed. (Inherited from AsyncCompletedEventArgs.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)

Use GetManifestCompletedEventArgs to obtain information about a ClickOnce application after the deployment and application manifests have been downloaded.

The following code example shows how to use InPlaceHostingManager to install a ClickOnce application programmatically on a client machine.

    Dim WithEvents iphm As InPlaceHostingManager = Nothing 

    Public Sub InstallApplication(ByVal deployManifestUriStr As String)
            Dim deploymentUri As New Uri(deployManifestUriStr)
            iphm = New InPlaceHostingManager(deploymentUri, False)
            MessageBox.Show("Created the object.")
        Catch uriEx As UriFormatException
            MessageBox.Show("Cannot install the application: " & _
                            "The deployment manifest URL supplied is not a valid URL." & _
                            "Error: " & uriEx.Message)
        Catch platformEx As PlatformNotSupportedException
            MessageBox.Show("Cannot install the application: " & _
                            "This program requires Windows XP or higher. " & _
                            "Error: " & platformEx.Message)
        Catch argumentEx As ArgumentException
            MessageBox.Show("Cannot install the application: " & _
                            "The deployment manifest URL supplied is not a valid URL." & _
                            "Error: " & argumentEx.Message)
        End Try

    End Sub 

    Private Sub iphm_GetManifestCompleted(ByVal sender As Object, ByVal e As GetManifestCompletedEventArgs) Handles iphm.GetManifestCompleted
        ' Check for an error. 
        If (e.Error IsNot Nothing) Then 
            ' Cancel download and install.
            MessageBox.Show("Could not download manifest. Error: " & e.Error.Message)
        End If 

        ' Dim isFullTrust As Boolean = CheckForFullTrust(e.ApplicationManifest) 

        ' Verify this application can be installed. 
            ' the true parameter allows InPlaceHostingManager 
            ' to grant the permissions requested in the application manifest. 
        Catch ex As Exception
            MessageBox.Show("An error occurred while verifying the application. " & _
                            "Error text: " & ex.Message)
        End Try 

        ' Use the information from GetManifestCompleted() to confirm  
        ' that the user wants to proceed. 
        Dim appInfo As String = "Application Name: " & e.ProductName
        appInfo &= ControlChars.Lf & "Version: " & e.Version.ToString()
        appInfo &= ControlChars.Lf & "Support/Help Requests: " 

        If Not (e.SupportUri Is Nothing) Then
            appInfo &= e.SupportUri.ToString()
            appInfo &= "N/A" 
        End If

        appInfo &= ControlChars.Lf & ControlChars.Lf & _
            "Confirmed that this application can run with its requested permissions." 

        ' If isFullTrust Then 
        '    appInfo &= ControlChars.Lf & ControlChars.Lf & _ 
        '        "This application requires full trust in order to run." 
        ' End If

        appInfo &= ControlChars.Lf & ControlChars.Lf & "Proceed with installation?" 

        Dim dr As DialogResult = MessageBox.Show(appInfo, _
            "Confirm Application Install", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
        If dr <> System.Windows.Forms.DialogResult.OK Then 
        End If 

        ' Download the deployment manifest.  
        ' Usually, this shouldn't throw an exception unless  
        ' AssertApplicationRequirements() failed, or you did not call that method 
        ' before calling this one. 
        Catch downloadEx As Exception
            MessageBox.Show("Cannot initiate download of application. Error: " & downloadEx.Message)
        End Try 
    End Sub

#If 0 Then 
    Private Function CheckForFullTrust(ByVal appManifest As XmlReader) As Boolean 
        Dim isFullTrust As Boolean = False 

        If (appManifest Is Nothing) Then 
            Throw New ArgumentNullException("appManifest cannot be null.")
        End If 

        Dim xaUnrestricted As XAttribute
        xaUnrestricted = XDocument.Load(appManifest) _
            .Element("{urn:schemas-microsoft-com:asm.v1}assembly") _
            .Element("{urn:schemas-microsoft-com:asm.v2}trustInfo") _
            .Element("{urn:schemas-microsoft-com:asm.v2}security") _
            .Element("{urn:schemas-microsoft-com:asm.v2}applicationRequestMinimum") _
            .Element("{urn:schemas-microsoft-com:asm.v2}PermissionSet") _
            .Attribute("Unrestricted")  ' Attributes never have a namespace

        If xaUnrestricted Then 
            If xaUnrestricted.Value = "true" Then 
                Return True 
            End If 
        End If 

        Return False 
    End Function
#End If 

    Private Sub iphm_DownloadProgressChanged(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs) Handles iphm.DownloadProgressChanged
        ' you can show percentage of task completed using e.ProgressPercentage 
    End Sub 

    Private Sub iphm_DownloadApplicationCompleted(ByVal sender As Object, ByVal e As DownloadApplicationCompletedEventArgs) Handles iphm.DownloadApplicationCompleted
        ' Check for an error. 
        If (e.Error IsNot Nothing) Then 
            ' Cancel download and install.
            MessageBox.Show("Could not download and install application. Error: " & e.Error.Message)
        End If 

        ' Inform the user that their application is ready for use. 
        MessageBox.Show("Application installed! You may now run it from the Start menu.")
    End Sub

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
© 2015 Microsoft