Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Mise à jour ClickOnce par programme VB Express 2008

4 réponses
Avatar
Yan
Bonjour à tous,

J'ai des difficultés à mettre en place l'exemple fournis dans l'aide de
Microsoft à l'adresse suivante :
http://msdn2.microsoft.com/en-us/library/system.deployment.application.applicationdeployment.aspx

Par exemple à la ligne :
Dim WithEvents ADUpdateAsync As ApplicationDeployment

VB Express me dit que le type "ApplicationDeployment" n'est pas défini

J'ai pourtant essayé de taper (sans succès) à la première ligne de mon
application un truc du style : "Imports System.deployment.application" mais
l'intelisens ne me trouve pas le mot "application"

Auriez-vous une idée du problème ?

Merci d'avance,
Yan

4 réponses

Avatar
Gilles TOURREAU [MVP]
"Yan" a écrit dans le message de
news:exL%
Bonjour à tous,

J'ai des difficultés à mettre en place l'exemple fournis dans l'aide de
Microsoft à l'adresse suivante :
http://msdn2.microsoft.com/en-us/library/system.deployment.application.applicationdeployment.aspx

Par exemple à la ligne :
Dim WithEvents ADUpdateAsync As ApplicationDeployment

VB Express me dit que le type "ApplicationDeployment" n'est pas défini

J'ai pourtant essayé de taper (sans succès) à la première ligne de mon
application un truc du style : "Imports System.deployment.application"
mais l'intelisens ne me trouve pas le mot "application"

Auriez-vous une idée du problème ?

Merci d'avance,
Yan




Bonjour,

Il faut ajouter dans votre projet une référence vers l'assembly
System.Deployment.

Cordialement

--
Gilles TOURREAU - MVP C#


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Yan
Bonjour et merci pour votre réponse,

Je vais donc rajouter cette fameuse référence.

Mais je ne comprends pas bien ces subtiles différences, car dans les
propriétés de mon projet, dans l'onglet "Références" il y a deux catégories,
"Espaces de noms importés" et "Références" dans cette dernière il n'y a pas
en effet "System.Deployment", mais dans l'autre une case à cocher
sélectionne "System.Deployment". Je pensais jusqu'alors qu'une simple
indication comme "Imports etc." suffisait à utiliser les méthodes et autres
dans le reste de ma programmation.

Pouvez-vous m'expliquer ?

Merci d'avance,
Yan








-----------------------------
"Gilles TOURREAU [MVP]" a écrit dans le message de
news:
"Yan" a écrit dans le message de
news:exL%
Bonjour à tous,

J'ai des difficultés à mettre en place l'exemple fournis dans l'aide de
Microsoft à l'adresse suivante :
http://msdn2.microsoft.com/en-us/library/system.deployment.application.applicationdeployment.aspx

Par exemple à la ligne :
Dim WithEvents ADUpdateAsync As ApplicationDeployment

VB Express me dit que le type "ApplicationDeployment" n'est pas défini

J'ai pourtant essayé de taper (sans succès) à la première ligne de mon
application un truc du style : "Imports System.deployment.application"
mais l'intelisens ne me trouve pas le mot "application"

Auriez-vous une idée du problème ?

Merci d'avance,
Yan




Bonjour,

Il faut ajouter dans votre projet une référence vers l'assembly
System.Deployment.

Cordialement

--
Gilles TOURREAU - MVP C#


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr




Avatar
Gilles TOURREAU [MVP]
"Yan" a écrit dans le message de
news:
Bonjour et merci pour votre réponse,

Je vais donc rajouter cette fameuse référence.

Mais je ne comprends pas bien ces subtiles différences, car dans les
propriétés de mon projet, dans l'onglet "Références" il y a deux
catégories, "Espaces de noms importés" et "Références" dans cette dernière
il n'y a pas en effet "System.Deployment", mais dans l'autre une case à
cocher sélectionne "System.Deployment". Je pensais jusqu'alors qu'une
simple indication comme "Imports etc." suffisait à utiliser les méthodes
et autres dans le reste de ma programmation.

Pouvez-vous m'expliquer ?

Merci d'avance,
Yan








-----------------------------
"Gilles TOURREAU [MVP]" a écrit dans le message
de news:
"Yan" a écrit dans le message de
news:exL%
Bonjour à tous,

J'ai des difficultés à mettre en place l'exemple fournis dans l'aide de
Microsoft à l'adresse suivante :
http://msdn2.microsoft.com/en-us/library/system.deployment.application.applicationdeployment.aspx

Par exemple à la ligne :
Dim WithEvents ADUpdateAsync As ApplicationDeployment

VB Express me dit que le type "ApplicationDeployment" n'est pas défini

J'ai pourtant essayé de taper (sans succès) à la première ligne de mon
application un truc du style : "Imports System.deployment.application"
mais l'intelisens ne me trouve pas le mot "application"

Auriez-vous une idée du problème ?

Merci d'avance,
Yan




Bonjour,

Il faut ajouter dans votre projet une référence vers l'assembly
System.Deployment.

Cordialement

--
Gilles TOURREAU - MVP C#


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr










Bonjour,

Une référence est une dépendance à un autre assembly (DLL).

Un Imports, contrairement à ce que l'on pourrait croire "n'importe" rien !
Il ne réalise en aucun l'équivalent du #include classique du C/C++ !
Pour comprendre les Imports, il faut comprendre ce qu'est un espace de nom :

Vous manipulez (et crée) énormement de classe sous .NET, il est donc
difficile de gérer une unicité au niveau des noms...
Pour cela on introduit le concept d'espace de nom qui permet de différencier
2 classes différentes. En fait les espaces de nom peuvent être vues comme
"un conteneur logique".
Un exemple analogue est de considérer un espace de nom comme un dossier, et
une classe comme un fichier.

Cela veut dire qu'une classe "Toto" ne s'appelle pas Toto, mais quelque
chose comme :
EspaceDeNom1.SousEspace.SousSousEspace.Toto
et cette classe est différente d'une autre classe avec le même nom, mais un
espace de nom différent :
AutreEspace.Toto

Chaque espaces de nom regroupent donc plusieurs classes, regroupée de
manière logique...

Sous .NET en programmation pur et dur, on devrait instancier les classes
ainsi :
Dim f As System.Windows.Forms.Form
f = new System.Windows.Forms.Form()

Le gros problème, c'est qu'il faut taper énormement de code ! Et on sait que
les informaticiens pro sont des fainéants !

Pour remédier à ce problème, on spécifie un :
Imports System.Windows.Forms

Et on peu coder l'instanication précédente ainsi :
Dim f As Form
f = new Form()

Plus techniquement, lorsque le compilateur rencontre : Form, il se dit "Je
connais pas", je vais essayez avec les listes des Imports :
"System.Form" --> Connait pas
"EspaceNom....Form" --> Connait pas
"System.Windows.Forms.Form" --> Je connais ! Je remplace donc : "Form" par
"System.Windows.Forms.Form"

Gardez à l'esprit que le Imports, "n'importe" rien !!! Il se contente de
résoudre des problèmes de nom à la compilation.



Il ne faut pas confondre Assembly et Espace de nom !
Assembly = Conteneur physique de classes (fichier .dll)
Espace de nom = Conteneur logique de classes (défini dans le projet ou dans
le fichier via la directive Namespace)

Il est possible de mettre plusieurs espaces de nom dans un Assembly, et il
est possible de mettre un Espace de nom réparti dans 2 ou 3 assembly...
La tradition, veut que l'on respecte plustot la première méthode, la
deuxième étant réservé dans des cas exceptionnelle, ou si votre espace de
nom contient 50 Mo de classes...

Microsoft ont par exemple mis dans l'assembly :
System les espaces de nom System, System.Reflection, ...etc
Dans System.Windows.Forms, ils ont mis uniquement l'espace de nom
System.Windows.Forms ...etc

Cordialement

--
Gilles TOURREAU - MVP C#


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Yan
Bonjour,

Merci beaucoup pour toutes ces explications, je commence à mieux comprendre.

Encore merci,
Yan

-----------------------------
"Gilles TOURREAU [MVP]" a écrit dans le message de
news:
"Yan" a écrit dans le message de
news:
Bonjour,

Une référence est une dépendance à un autre assembly (DLL).

Un Imports, contrairement à ce que l'on pourrait croire "n'importe" rien !
Il ne réalise en aucun l'équivalent du #include classique du C/C++ !
Pour comprendre les Imports, il faut comprendre ce qu'est un espace de nom
:

Vous manipulez (et crée) énormement de classe sous .NET, il est donc
difficile de gérer une unicité au niveau des noms...
Pour cela on introduit le concept d'espace de nom qui permet de
différencier 2 classes différentes. En fait les espaces de nom peuvent
être vues comme "un conteneur logique".
Un exemple analogue est de considérer un espace de nom comme un dossier,
et une classe comme un fichier.

Cela veut dire qu'une classe "Toto" ne s'appelle pas Toto, mais quelque
chose comme :
EspaceDeNom1.SousEspace.SousSousEspace.Toto
et cette classe est différente d'une autre classe avec le même nom, mais
un espace de nom différent :
AutreEspace.Toto

Chaque espaces de nom regroupent donc plusieurs classes, regroupée de
manière logique...

Sous .NET en programmation pur et dur, on devrait instancier les classes
ainsi :
Dim f As System.Windows.Forms.Form
f = new System.Windows.Forms.Form()

Le gros problème, c'est qu'il faut taper énormement de code ! Et on sait
que les informaticiens pro sont des fainéants !

Pour remédier à ce problème, on spécifie un :
Imports System.Windows.Forms

Et on peu coder l'instanication précédente ainsi :
Dim f As Form
f = new Form()

Plus techniquement, lorsque le compilateur rencontre : Form, il se dit "Je
connais pas", je vais essayez avec les listes des Imports :
"System.Form" --> Connait pas
"EspaceNom....Form" --> Connait pas
"System.Windows.Forms.Form" --> Je connais ! Je remplace donc : "Form" par
"System.Windows.Forms.Form"

Gardez à l'esprit que le Imports, "n'importe" rien !!! Il se contente de
résoudre des problèmes de nom à la compilation.



Il ne faut pas confondre Assembly et Espace de nom !
Assembly = Conteneur physique de classes (fichier .dll)
Espace de nom = Conteneur logique de classes (défini dans le projet ou
dans le fichier via la directive Namespace)

Il est possible de mettre plusieurs espaces de nom dans un Assembly, et il
est possible de mettre un Espace de nom réparti dans 2 ou 3 assembly...
La tradition, veut que l'on respecte plustot la première méthode, la
deuxième étant réservé dans des cas exceptionnelle, ou si votre espace de
nom contient 50 Mo de classes...

Microsoft ont par exemple mis dans l'assembly :
System les espaces de nom System, System.Reflection, ...etc
Dans System.Windows.Forms, ils ont mis uniquement l'espace de nom
System.Windows.Forms ...etc

Cordialement

--
Gilles TOURREAU - MVP C#


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr