Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original
Este tópico ainda não foi avaliado como - Avalie este tópico

Classe GetManifestCompletedEventArgs

Provides data for the GetManifestCompleted event of InPlaceHostingManager.

Namespace:  System.Deployment.Application
Assembly:  System.Deployment (em System.Deployment.dll)
public class GetManifestCompletedEventArgs : AsyncCompletedEventArgs

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.

InPlaceHostingManager iphm = null;

privatevoid InstallApplication(string deployManifestUriStr)
{
    try
    {
        Uri deploymentUri = new Uri(deployManifestUriStr);
        iphm = new InPlaceHostingManager(deploymentUri, false);
        MessageBox.Show("Created the object.");
    }
    catch (UriFormatException uriEx)
    {
        MessageBox.Show("Cannot install the application: The deployment manifest URL supplied is not a valid URL." +
            "Error: " + uriEx.Message);
        return;
    }
    catch (PlatformNotSupportedException platformEx)
    {
        MessageBox.Show("Cannot install the application: This program requires Windows XP or higher. " +
            "Error: " + platformEx.Message);
        return;
    }
    catch (ArgumentException argumentEx)
    {
        MessageBox.Show("Cannot install the application: The deployment manifest URL supplied is not a valid URL." +
            "Error: " + argumentEx.Message);
        return;
    }

    iphm.GetManifestCompleted += new EventHandler<GetManifestCompletedEventArgs>(iphm_GetManifestCompleted);
    iphm.GetManifestAsync();
}

void iphm_GetManifestCompleted(object sender, GetManifestCompletedEventArgs e)
{
    // Check for an error.if (e.Error != null)
    {
        // Cancel download and install.
        MessageBox.Show("Could not download manifest. Error: " + e.Error.Message);
        return;
    }

    // Dig inside of the manifest and see if this application requests full trust.// You can determine this by searching for a PermissionSet tag// that has the Unrestricted attribute set to true.bool isFullTrust = CheckForFullTrust(e.ApplicationManifest);

    // Verify this application can be installed.try
    {
        iphm.AssertApplicationRequirements();
    }
    catch (InvalidDeploymentException assertEx)
    {
        // Security exception. Report the error to the user.
        MessageBox.Show("Cannot install the application due to a security error. " +
            "Error text: " + assertEx.Message);
        return;
    }
    catch (Exception ex)
    {
        MessageBox.Show("An error occurred while verifying the application. " +
            "Error text: " + ex.Message);
        return;
    }

    // Use the information from GetManifestCompleted() to confirm // that the user wants to proceed.
    string appInfo = "Application Name: " + e.ProductName;
    appInfo += "\nVersion: " + e.Version;
    appInfo += "\nSupport/Help Requests: " + (e.SupportUri != null ?
        e.SupportUri.ToString() : "N/A");
    appInfo += "\n\nConfirmed that this application can run with its requested permissions.";
    if (isFullTrust)
    {
        appInfo += "\n\nThis application requires full trust in order to run.";
    }
    appInfo += "\n\nProceed with installation?";

    DialogResult dr = MessageBox.Show(appInfo, "Confirm Application Install",
        MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
    if (dr != System.Windows.Forms.DialogResult.OK)
    {
        return;
    }

    // Download the deployment manifest. // We've added error handling here simply to be robust. Usually,// this shouldn't throw an exception unless // AssertApplicationRequirements() failed, or you did not call that method// before calling this one.
    iphm.DownloadProgressChanged += new EventHandler<DownloadProgressChangedEventArgs>(iphm_DownloadProgressChanged);
    iphm.DownloadApplicationCompleted += new EventHandler<DownloadApplicationCompletedEventArgs>(iphm_DownloadApplicationCompleted);

    try
    {
        iphm.DownloadApplicationAsync();
    }
    catch (Exception downloadEx)
    {
        MessageBox.Show("Cannot initiate download of application. Error: " +
            downloadEx.Message);
        return;
    }
}

privatebool CheckForFullTrust(XmlReader appManifest)
{
    bool isFullTrust = false;

    if (appManifest == null)
    {
        throw (new ArgumentNullException("appManifest cannot be null."));
    }

    while (appManifest.Read())
    {
        // Find the minimum required permission set.if (appManifest.NodeType == XmlNodeType.Element)
        {
            if (appManifest.Name.Equals("applicationRequestMinimum"))
            {
                // Get the next two nodes, which are PermissionSet and// defaultAssemblyRequest.// TODO: Will there ALWAYS be just one PermissionSet here? If so,// I can stick with the simple logic of just examining the // PermissionSet node. Otherwise, I'll need to get // defaultAssemblyRequest, and check the appropriate // PermissionSet.   while (appManifest.Read())
                {
                    if (appManifest.Name.Equals("PermissionSet"))
                    {
                        // This is a required attribute - no need to sanity-check// its existence.if (appManifest.GetAttribute("Unrestricted").Equals("true"))
                        {
                            isFullTrust = true;
                        }

                        break;
                    }
                }

                break;
            }
        }
    }

    return isFullTrust;
}

void iphm_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
    toolStripProgressBar1.ProgressBar.Value = e.ProgressPercentage;
}

void iphm_DownloadApplicationCompleted(object sender, DownloadApplicationCompletedEventArgs e)
{
    // Check for an error.if (e.Error != null)
    {
        // Cancel download and install.
        MessageBox.Show("Could not download and install application. Error: " + e.Error.Message);
        return;
    }

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


System.Object
  System.EventArgs
    System.ComponentModel.AsyncCompletedEventArgs
      System.Deployment.Application.GetManifestCompletedEventArgs
Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

.NET Framework

Compatível com: 3.5, 3.0, 2.0
Isso foi útil para você?
(1500 caracteres restantes)

Contribuições da comunidade

ADICIONAR
© 2013 Microsoft. Todos os direitos reservados.