Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

InPlaceHostingManager (Clase)

Instala o actualiza una implementación de ClickOnce en un equipo.

System.Object
  System.Deployment.Application.InPlaceHostingManager

Espacio de nombres:  System.Deployment.Application
Ensamblado:  System.Deployment (en System.Deployment.dll)

[SecurityPermissionAttribute(SecurityAction.Demand, Unrestricted = true)]
public class InPlaceHostingManager : IDisposable

El tipo InPlaceHostingManager expone los siguientes miembros.

  NombreDescripción
Método públicoInPlaceHostingManager(Uri)Crea una nueva instancia de InPlaceHostingManager para descargar e instalar la aplicación especificada hospedada en un explorador.
Método públicoInPlaceHostingManager(Uri, Boolean)Crea una nueva instancia de InPlaceHostingManager para descargar e instalar la aplicación especificada, que puede ser una aplicación independiente basada en formularios Windows Forms o en una aplicación hospedada en un explorador web.
Arriba

  NombreDescripción
Método públicoAssertApplicationRequirements()Determina si la aplicación ClickOnce tiene los permisos adecuados y las dependencias de plataforma para que se pueda ejecutar en el equipo local.
Método públicoAssertApplicationRequirements(Boolean)Determina si la aplicación ClickOnce tiene los permisos adecuados y las dependencias de plataforma para que se pueda ejecutar en el equipo local.
Método públicoCancelAsyncCancela una operación de descarga asincrónica.
Método públicoDisposeLibera todos los recursos utilizados por InPlaceHostingManager.
Método públicoDownloadApplicationAsyncDescarga una actualización de la aplicación en segundo plano.
Método públicoEquals(Object)Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object).
Método públicoExecuteInicia la aplicación ClickOnce, si y sólo si es una aplicación basada en Windows Presentation Foundation que se ejecute en un explorador web.
Método protegidoFinalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método públicoGetHashCode Sirve como una función hash para un tipo en particular. (Se hereda de Object).
Método públicoGetManifestAsyncDescarga el manifiesto de implementación de la aplicación ClickOnce en segundo plano y genera un evento cuando la operación ha concluido o detecta un error.
Método públicoGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método protegidoMemberwiseClone Crea una copia superficial del Object actual. (Se hereda de Object).
Método públicoToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Método públicoMiembro estáticoUninstallCustomAddInQuita de una aplicación un componente definido por el usuario y anteriormente instalado.
Método públicoMiembro estáticoUninstallCustomUXApplicationQuita una aplicación ClickOnce que incluye el elemento <customUX>.
Arriba

  NombreDescripción
Evento públicoDownloadApplicationCompletedSe produce cuando la aplicación ha finalizado la descarga al equipo local.
Evento públicoDownloadProgressChangedSe produce cuando hay un cambio en el estado de la descarga de una aplicación o un manifiesto.
Evento públicoGetManifestCompletedSe produce cuando el manifiesto de implementación se ha descargado al equipo local.
Arriba

Puede usar InPlaceHostingManager para escribir programas que instalen automáticamente aplicaciones ClickOnce. Por ejemplo, puede utilizar esta clase en un entorno controlado de software de administración de sistemas o en casos en los que necesite una instalación compleja que realice varias operaciones de preinstalación o postinstalación en el equipo local. Generalmente, deseará utilizar los miembros de esta clase en un orden concreto:

  1. Crear una nueva instancia de InPlaceHostingManager.

  2. Descargar el manifiesto de implementación mediante GetManifestAsync.

  3. Comprobar que la aplicación se puede ejecutar con los permisos adecuados mediante AssertApplicationRequirements.

  4. Descargar e instalar la aplicación mediante DownloadApplicationAsync.

  • Si llama a cualquiera de estos parámetros en un orden que no sea el correcto, producirán una excepción.

InPlaceHostingManager puede instalar una aplicación ClickOnce, pero no puede ejecutarla. Algunos métodos de esta clase, como Execute, se reservan para su uso al descargar una aplicación basada en Windows Presentation Foundation que se ejecute en un explorador web.

Para utilizar InPlaceHostingManager con el fin de descargar e instalar aplicaciones, se debe asegurar de que el certificado para firmar las aplicaciones ClickOnce que piensa instalar ya está instalado en los equipos cliente como editor de confianza. Para obtener más información sobre editores de confianza, vea Información general sobre la implementación de aplicaciones de confianza.

NotaNota

Actualmente existe una limitación de producto que evita que InPlaceHostingManager funcione correctamente al depurar el código mediante Visual Studio. Si depura la aplicación en Visual Studio con la tecla F5, el ejemplo producirá excepciones extrañas al llamar a DownloadApplicationAsync. Para depurar con Visual Studio, inicie la aplicación sin depurar y, a continuación, asocie el depurador. O bien, puede utilizar otro depurador, como WinDbg.

En el ejemplo de código siguiente, se muestra cómo utilizar InPlaceHostingManager para instalar una aplicación ClickOnce mediante programación en un equipo cliente.


InPlaceHostingManager iphm = null;

public void InstallApplication(string deployManifestUriStr)
{
    try
    {
        Uri deploymentUri = new Uri(deployManifestUriStr);
        iphm = new InPlaceHostingManager(deploymentUri, false);
    }
    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;
    }

    // bool isFullTrust = CheckForFullTrust(e.ApplicationManifest);

    // Verify this application can be installed.
    try
    {
        // the true parameter allows InPlaceHostingManager
        // to grant the permissions requested in the applicaiton manifest.
        iphm.AssertApplicationRequirements(true) ; 
    }
    catch (Exception ex)
    {
        MessageBox.Show("An error occurred while verifying the application. " +
            "Error: " + 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. 
    iphm.DownloadProgressChanged += new EventHandler<DownloadProgressChangedEventArgs>(iphm_DownloadProgressChanged);
    iphm.DownloadApplicationCompleted += new EventHandler<DownloadApplicationCompletedEventArgs>(iphm_DownloadApplicationCompleted);

    try
    {
        // Usually this shouldn't throw an exception unless AssertApplicationRequirements() failed, 
        // or you did not call that method before calling this one.
        iphm.DownloadApplicationAsync();
    }
    catch (Exception downloadEx)
    {
        MessageBox.Show("Cannot initiate download of application. Error: " +
            downloadEx.Message);
        return;
    }
}

/*
private bool CheckForFullTrust(XmlReader appManifest)
{
    if (appManifest == null)
    {
        throw (new ArgumentNullException("appManifest cannot be null."));
    }

    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 != null)
        if (xaUnrestricted.Value == "true")
            return true;

    return false;
}
*/

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.");
}

void iphm_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
    // you can show percentage of task completed using e.ProgressPercentage
}


.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft