作者:VB.NET开发
项目:System.Deployment.Applicatio
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)
Return
End If
' Dim isFullTrust As Boolean = CheckForFullTrust(e.ApplicationManifest)
' Verify this application can be installed.
Try
' the true parameter allows InPlaceHostingManager
' to grant the permissions requested in the application manifest.
iphm.AssertApplicationRequirements(True)
Catch ex As Exception
MessageBox.Show("An error occurred while verifying the application. " & _
"Error text: " & ex.Message)
Return
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()
Else
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
Return
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.
Try
iphm.DownloadApplicationAsync()
Catch downloadEx As Exception
MessageBox.Show("Cannot initiate download of application. Error: " & downloadEx.Message)
Return
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