InPlaceHostingManager.AssertApplicationRequirements Method ()


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Determines whether the ClickOnce application has the appropriate permissions and platform dependencies to run on the local computer.

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

Public Sub AssertApplicationRequirements

Exception Condition

Raised if this method is called before the GetManifestAsync method.

You must call AssertApplicationRequirements after GetManifestAsync returns successfully. You must not call DownloadApplicationAsync unless you call AssertApplicationRequirements, and it returns without error.

The following code example demonstrates the use of AssertApplicationRequirements, which it calls in the body of a successful GetManifestCompleted event handler.

    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

.NET Framework
Available since 2.0
Return to top