Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

ApplicationDeployment classe

 

Date de publication : novembre 2016

Prend en charge les mises à jour du déploiement actuel par programme et gère le téléchargement de fichiers à la demande. Cette classe ne peut pas être héritée.

Espace de noms:   System.Deployment.Application
Assembly:  System.Deployment (dans System.Deployment.dll)

System.Object
  System.Deployment.Application.ApplicationDeployment

public sealed class ApplicationDeployment

NomDescription
System_CAPS_pubpropertyActivationUri

Obtient l’URL utilisée pour lancer le manifeste de déploiement de l’application.

System_CAPS_pubpropertySystem_CAPS_staticCurrentDeployment

Retourne l’actuel ApplicationDeployment pour ce déploiement.

System_CAPS_pubpropertyCurrentVersion

Obtient la version du déploiement pour l’instance actuelle en cours d’exécution de l’application.

System_CAPS_pubpropertyDataDirectory

Obtient le chemin d’accès à la ClickOnce répertoire de données.

System_CAPS_pubpropertyIsFirstRun

Obtient une valeur indiquant s’il s’agit de la première fois que cette application s’exécute sur l’ordinateur client.

System_CAPS_pubpropertySystem_CAPS_staticIsNetworkDeployed

Obtient une valeur indiquant si l’application actuelle est une ClickOnce application.

System_CAPS_pubpropertyTimeOfLastUpdateCheck

Obtient la date et l’heure ClickOnce dernière vérification pour une mise à jour de l’application.

System_CAPS_pubpropertyUpdatedApplicationFullName

Cette API prend en charge l’infrastructure de produit et n’est pas destinée à être utilisée directement depuis votre code. Obtient le nom complet de l’application une fois qu’il a été mis à jour.

System_CAPS_pubpropertyUpdatedVersion

Obtient la version de la mise à jour a été téléchargée récemment.

System_CAPS_pubpropertyUpdateLocation

Obtient le site Web ou un partage de fichiers à partir duquel cette application se met à jour.

NomDescription
System_CAPS_pubmethodCheckForDetailedUpdate()

Effectue la même opération que CheckForUpdate, mais retourne des informations détaillées sur la mise à jour disponible.

System_CAPS_pubmethodCheckForDetailedUpdate(Boolean)

Effectue la même opération que CheckForUpdate, mais retourne des informations détaillées sur la mise à jour disponible.

System_CAPS_pubmethodCheckForUpdate()

Vérifie UpdateLocation pour déterminer si une nouvelle mise à jour est disponible.

System_CAPS_pubmethodCheckForUpdate(Boolean)

Vérifie UpdateLocation pour déterminer si une nouvelle mise à jour est disponible.

System_CAPS_pubmethodCheckForUpdateAsync()

Vérifie UpdateLocation asynchrone pour déterminer si une nouvelle mise à jour est disponible.

System_CAPS_pubmethodCheckForUpdateAsyncCancel()

Annule la vérification de la mise à jour asynchrone.

System_CAPS_pubmethodDownloadFileGroup(String)

Télécharge un ensemble de fichiers facultatifs à la demande.

System_CAPS_pubmethodDownloadFileGroupAsync(String)

Télécharge, à la demande, un ensemble de fichiers facultatifs en arrière-plan.

System_CAPS_pubmethodDownloadFileGroupAsync(String, Object)

Télécharge, à la demande, un ensemble de fichiers facultatifs en arrière-plan et passe une partie de l’état de l’application aux rappels d’événement.

System_CAPS_pubmethodDownloadFileGroupAsyncCancel(String)

Annule un téléchargement de fichier asynchrone.

System_CAPS_pubmethodEquals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.(Hérité de Object.)

System_CAPS_pubmethodGetHashCode()

Fait office de fonction de hachage par défaut.(Hérité de Object.)

System_CAPS_pubmethodGetType()

Obtient le Type de l'instance actuelle.(Hérité de Object.)

System_CAPS_pubmethodIsFileGroupDownloaded(String)

Vérifie si le groupe de fichiers nommé a déjà été téléchargé sur l’ordinateur client.

System_CAPS_pubmethodToString()

Retourne une chaîne qui représente l'objet actuel.(Hérité de Object.)

System_CAPS_pubmethodUpdate()

Démarre un téléchargement synchrone et l’installation de la dernière version de cette application.

System_CAPS_pubmethodUpdateAsync()

Démarre un téléchargement asynchrone et l’installation de la dernière version de cette application.

System_CAPS_pubmethodUpdateAsyncCancel()

Annule une mise à jour asynchrone lancée par UpdateAsync.

NomDescription
System_CAPS_pubeventCheckForUpdateCompleted

Se produit lorsque CheckForUpdateAsync est terminée.

System_CAPS_pubeventCheckForUpdateProgressChanged

Se produit lorsqu’une mise à jour est disponible sur un CheckForUpdateAsync appeler.

System_CAPS_pubeventDownloadFileGroupCompleted

Se produit sur le thread d’application principal lorsqu’un téléchargement de fichier est terminé.

System_CAPS_pubeventDownloadFileGroupProgressChanged

Se produit lorsque les informations d’état sont disponibles sur une opération de téléchargement de fichier lancée par un appel à DownloadFileGroupAsync.

System_CAPS_pubeventUpdateCompleted

Se produit lorsque ClickOnce a terminé la mise à niveau de l’application à la suite d’un appel à UpdateAsync.

System_CAPS_pubeventUpdateProgressChanged

Se produit lorsque ClickOnce a de nouvelles informations d’état d’une opération de mise à jour lancée en appelant le UpdateAsync (méthode).

Vous pouvez configurer votre ClickOnce application pour vérifier les mises à jour et les installer automatiquement via le subscription élément du manifeste de déploiement. Certaines applications, toutefois, peut-être mieux contrôler leurs mises à jour. Vous souhaiterez peut-être installer les mises à jour requises par programme, et inviter les utilisateurs à installer les mises à jour facultatives à leur convenance. En désactivant les mises à jour de l’abonnement dans le manifeste de déploiement, vous pouvez prendre le contrôle des stratégies de mise à jour de votre application. Vous pouvez également utiliser l’abonnement automatique conjointement avec ApplicationDeployment, qui permet aux ClickOnce régulièrement à jour l’application, mais utilise ApplicationDeployment pour télécharger les mises à jour critiques peu de temps après leur publication.

Vous pouvez tester si votre déploiement possède une mise à jour disponible à l’aide du CheckForUpdate ou le CheckForUpdateAsync méthode ; la dernière méthode déclenche le CheckForUpdateCompleted événements de réussite. CheckForDetailedUpdate Retourne des informations importantes sur la mise à jour, telles que son numéro de version et s’il s’agit d’une mise à jour requise pour les utilisateurs actuels. Si une mise à jour est disponible, vous pouvez l’installer à l’aide de Update ou UpdateAsync; la dernière méthode déclenche le UpdateCompleted événement après l’installation de la mise à jour est terminée. Pour les mises à jour importantes, vous pouvez recevoir des notifications de progression via le CheckForUpdateProgressChanged et UpdateProgressChanged des événements et utilisez les informations de ProgressChangedEventArgs pour informer l’utilisateur de l’état de téléchargement.

Vous pouvez également utiliser ApplicationDeployment pour télécharger des fichiers volumineux et les assemblys à la demande. Ces fichiers doivent être marqués comme « facultatifs » dans le manifeste de déploiement de l’application afin qu’ils ne sont pas téléchargées pendant l’installation. Vous pouvez télécharger les fichiers à tout moment pendant la durée de l’application à l’aide de la DownloadFileGroup ou DownloadFileGroupAsync (méthode). Vous pouvez télécharger des assemblys avant qu’ils soient chargés en mémoire en fournissant un gestionnaire d’événements pour le AssemblyResolve événement sur la AppDomain classe. Pour plus d'informations, consultez Procédure pas à pas : téléchargement d'assemblys à la demande avec l'API du déploiement ClickOnce à l'aide du concepteur.

System_CAPS_noteRemarque

Si vous mettez à jour un ClickOnce application alors que l’application est en cours d’exécution, l’utilisateur ne voit pas les mises à jour jusqu'à ce que vous appeliez la Restart Procédé de la Application, qui ferme l’instance en cours d’exécution en cours de l’application et la redémarre immédiatement.

ApplicationDeployment n’a aucun constructeur public ; vous obtenez des instances de la classe dans un ClickOnce application via le CurrentDeployment propriété. Vous utilisez la IsNetworkDeployed propriété pour vérifier que l’application en cours est un ClickOnce application.

ApplicationDeployment prend en charge la vérification des mises à jour et le téléchargement de fichiers mis à jour en mode asynchrone à l’aide de la nouvelle Event-based Asynchronous Pattern Overview, qui expose les rappels d’exécution comme des événements de la classe. ApplicationDeployment démarre et gère les threads pour vous et rappelle votre application sur le thread d’interface utilisateur approprié. Grâce à cette classe, vous pouvez mettre à jour sans verrouiller l’application, afin que l’utilisateur puisse continuer à travailler pendant l’installation de la mise à jour. Si l’utilisateur doit arrêter de travailler lorsqu’une mise à jour a lieu, envisagez plutôt d’utiliser les méthodes synchrones.

System_CAPS_noteRemarque

Mise à jour asynchrone requiert que votre application à l’importation à la fois les System.Deployment.Application et System.ComponentModel espaces de noms.

L’exemple de code suivant détermine au moment du chargement application si une nouvelle mise à jour est disponible ; Si une mise à jour requise est disponible, l’exemple de code installe la mise à jour de façon asynchrone. Ce code doit être ajouté à un formulaire contenant un TextBox nommé downloadStatus.

long sizeOfUpdate = 0;

private void UpdateApplication()
{
    if (ApplicationDeployment.IsNetworkDeployed)
    {
        ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
        ad.CheckForUpdateCompleted += new CheckForUpdateCompletedEventHandler(ad_CheckForUpdateCompleted);
        ad.CheckForUpdateProgressChanged += new DeploymentProgressChangedEventHandler(ad_CheckForUpdateProgressChanged);

        ad.CheckForUpdateAsync();
    }
}

void  ad_CheckForUpdateProgressChanged(object sender, DeploymentProgressChangedEventArgs e)
{
    downloadStatus.Text = String.Format("Downloading: {0}. {1:D}K of {2:D}K downloaded.", GetProgressString(e.State), e.BytesCompleted/1024, e.BytesTotal/1024);   
}

string GetProgressString(DeploymentProgressState state)
{
    if (state == DeploymentProgressState.DownloadingApplicationFiles)
    {
        return "application files";
    } 
    else if (state == DeploymentProgressState.DownloadingApplicationInformation) 
    {
        return "application manifest";
    } 
    else 
    {
        return "deployment manifest";
    }
}

void ad_CheckForUpdateCompleted(object sender, CheckForUpdateCompletedEventArgs e)
{
    if (e.Error != null)
    {
        MessageBox.Show("ERROR: Could not retrieve new version of the application. Reason: \n" + e.Error.Message + "\nPlease report this error to the system administrator.");
        return;
    }
    else if (e.Cancelled == true)
    {
        MessageBox.Show("The update was cancelled.");
    }

    // Ask the user if they would like to update the application now.
    if (e.UpdateAvailable)
    {
        sizeOfUpdate = e.UpdateSizeBytes;

        if (!e.IsUpdateRequired)
        {
            DialogResult dr = MessageBox.Show("An update is available. Would you like to update the application now?\n\nEstimated Download Time: ", "Update Available", MessageBoxButtons.OKCancel);
            if (DialogResult.OK == dr)
            {
                BeginUpdate();
            }
        }
        else
        {
            MessageBox.Show("A mandatory update is available for your application. We will install the update now, after which we will save all of your in-progress data and restart your application.");
            BeginUpdate();
        }
    }
}

private void BeginUpdate()
{
    ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
    ad.UpdateCompleted += new AsyncCompletedEventHandler(ad_UpdateCompleted);

    // Indicate progress in the application's status bar.
    ad.UpdateProgressChanged += new DeploymentProgressChangedEventHandler(ad_UpdateProgressChanged);
    ad.UpdateAsync();
}

void ad_UpdateProgressChanged(object sender, DeploymentProgressChangedEventArgs e)
{
    String progressText = String.Format("{0:D}K out of {1:D}K downloaded - {2:D}% complete", e.BytesCompleted / 1024, e.BytesTotal / 1024, e.ProgressPercentage);
    downloadStatus.Text = progressText;
}

void ad_UpdateCompleted(object sender, AsyncCompletedEventArgs e)
{
    if (e.Cancelled)
    {
        MessageBox.Show("The update of the application's latest version was cancelled.");
        return;
    }
    else if (e.Error != null)
    {
        MessageBox.Show("ERROR: Could not install the latest version of the application. Reason: \n" + e.Error.Message + "\nPlease report this error to the system administrator.");
        return;
    }

    DialogResult dr = MessageBox.Show("The application has been updated. Restart? (If you do not restart now, the new version will not take effect until after you quit and launch the application again.)", "Restart Application", MessageBoxButtons.OKCancel);
    if (DialogResult.OK == dr)
    {
        Application.Restart();
    }
}

.NET Framework
Disponible depuis 2.0

Tous les membres statiques publics ( Shared en Visual Basic) de ce type sont thread-safe. Les membres d’instance n’ont pas la garantie d’être thread-safe.

Retour au début
Afficher: