Problème d'exécution d'un exe en réseau

nazzguhl Messages postés 26 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 26 janvier 2011 - 23 janv. 2011 à 15:00
nazzguhl Messages postés 26 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 26 janvier 2011 - 26 janv. 2011 à 14:41
Bonjour,

j'ai fait un programme en VB.Net 2008, dans le cadre de mon boulot, il fonctionne bien sur mon Poste (l'exe obtenu par Génération dans le répertoire Release), je copie toute l'arborescence sur un lecteur Réseau, je l'essaye de mon Poste, toujours pas de problème.

Lorsque je vais sur un PC qui n'a pas Visual Studio d'installé, je dois déjà installer manuellement installer le FrameWork (existe-t-il un moyen de l'installer automatiquement sur les 150 PC qui vont utiliser ce programme ?), mais lorsque je lance l'exe, il s'arrête sur un problème de sécurité, si je le copie en local ça fonctionne.

Ma question comment déployer sur 150 PC le programme sans le copier en local (un peu gênant pour chaque modification) et sans installer manuellement le Framework (ça risque d'être long)...
Je n'ai pas essayé la publication, je ne sais pas comment ça marche

merci pour votre aide.
ACT

8 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
23 janv. 2011 à 15:26
Bonjour,

Quel problème de sécurité ?
Dans la config par défaut, certaines actions sont interdites en fonction de l'emplacement du programme, mais je ne sais pas comment changer cela, mais je sais que c'est possible.

Pour l'install du Framework, tu ne pourras pas y couper, à mois que d'autres personnes aient une solution.

Mon site
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
23 janv. 2011 à 17:23
Le framework doit être installé sur chaque machine, pas d'autres solutions.

Ensuite les règles de sécurités du framework interdisent en général l'exécution de programme à travers le réseau. Pour autoriser un programme en particulier, il faut, sur chaque machine, enregistrer ce programme dans les règles de sécurités du framework en utilisant l'utilitaire CasPol.exe

J'ai eu à faire cela pour un programme, j'ai utiliser la commande suivante
caspol.exe -q -machine -addgroup 1.2 -url "file://chemin_de_lexe" FullTrust -name "NomDonnéALaRègle"

L'exe ne doit pas changer de place, le lecteur réseau doit toujours être le même.


Je t'invite à recherche de la documentation sur la commande caspol pour savoir à quoi correspond chaque paramètre.

La solution idéale sera de faire un pack d'installation, en réglant les bons paramètres, mais avec un exe qui reste sur un serveur, c'est pas des plus simple à faire.




[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0
nazzguhl Messages postés 26 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 26 janvier 2011
24 janv. 2011 à 14:09
Merci pour vos réponses,

pour le framework, je le craignais... mais bon ça sera fait au moins et une bonne fois pour toute !!!

pour l'autre commande je recherche les info, mais à priori, ça correspond à ce que je cherchais, bien que je pensais plus à une correction dans mon programme, mais tant pis...

Merci
ACT
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
24 janv. 2011 à 14:23
Tu peux corriger ton programme, tu fais un click droit sur ton projet et tu choisi Propriétés. Ensuite tu vas dans Sécurité et tu coche "Activer les paramètres de sécurité ClickOnce.

Ensuite soit tu choisi "Confiance totale", soit "Confiance partielle" en faisant calculer les autorisations.

Il te faut recompiler ton programme.
Tu peux essayer de déployer ton exe comme ça, mais c'est as sur que ça marche. Il te faudra normalement passer quand même par caspol.

Nota 1 : Quand la manip ci-dessus est faite, et qu'un pack de déploiement est créé, c'est normalement l'assistant d'installation qui se charge de créer les règles caspol correspondantes.

Nota 2 : La règle caspol que j'ai donné précédemment, correspond au choix d'une application de confiance totale (FullTrust).


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nazzguhl Messages postés 26 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 26 janvier 2011
26 janv. 2011 à 10:07
Je te remercie pour ces précisions, c'est bien un programme en confiance totale, puisqu'il est interne à l'entreprise.

Comme tu as l'air de t'y connaître, je suis ancien développer VB6 et maintenant VB.Net, mais je ne retrouve pas la méthode d'enpaquetage/Déploiement de Vb6 mais en VB.Net il y a
- soit la Génération d'un exe dans Release sans outils d'installation ni de déploiement
- la Publication qui crée un exe différent mais permet le déploiement

J'ai remarqué que si l'on crée un répertoire Param par exemple dans l'arborescence du projet avec la première méthode "génération", je retrouve facilement le chemin de répertoire Param, mais avec la Publication l'exe ne le retrouve plus, donc je suis perplexe sur la méthode de déploiement

Si tu peux m'expliquer un peu plus, ça m'arrangerait ou m'indiquer un tuto la dessus, mais je n'en ai pas encore trouvé juste sur la compilation.

merci d'avance
ACT
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
26 janv. 2011 à 10:35
La méthode d'empaquetage de VB6 n'existe plus en l'état dans .Net (d'ailleurs même pour VB6, il est vivement déconseiller de ne plus l'utiliser, trop dangereuse pour le système).

Avec .Net, tu as 2 méthodes intégrées suivant l'édition (les éditions Express n'ont que la méthode ClickOnce, les éditions complètes ont les 2)
- ClickOnce : Nouvelle méthode de déploiement introduite avec .Net. Elle est, à la base, plus orientée déploiement par le web bien qu'elle puisse faire du déploiement par cd aussi.
- WindowsInstaller : La traditionnelle méthode de déploiement d'applications en tout genre sous Windows

Une 3ème méthode cosiste à simplement faire un copier/coller du contenu du dossier Release (bien que tous les fichiers ne soient pas nécessaire). Cela suppose que le framework correspond et les différents objets requis par l'application soient déjà installés que la machine cible. Cela necessite aussi d'intervenir manuellement dans des cas comme le tient.

Pour la méthode ClickOnce (que je n'ai jamais utilisé), tout se paramètre dans l'onglet Publier des propriétés du projet. Ensuite il suffit de cliquer sur Publier (accessible depuis plusieurs endroit) pour créer le pack.

Pour la méthode WindowsInstaller, il faut rajouter un projet de type déploiement (Catégorie Autres Projet) à la solution contenant le projet à déployer. Une fois paramètré correctement (c'est pas forcément toujours des plus simple), il suffit de générer le projet comme on génèrerait n'importe quel autre projet. On retrouve le pack dans le sous dossier du projet de déloiement.
A noter que dans ce cas, on obtient un .msi et un .exe. L'installation se fait en lançant le .exe, pas le .msi. Le msi ne fait que l'installation, rien d'autres. L'exe va d'abord faire quelques vérifications, notamment si les objets requis (à commencer par le framework) sont déjà installés, et les installer s'il ne le sont pas, puis enfin lance automatiquement le msi pour faire l'installation de l'application.


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
26 janv. 2011 à 10:36
Il y a aussi une 4ème méthode qui consiste à utiliser des logiciels tiers pour faire le pack (InnoSetup, InstallShield, .....)





[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0
nazzguhl Messages postés 26 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 26 janvier 2011
26 janv. 2011 à 14:41
Merci pour tes réponses,

Je vais essayer les différentes méthodes et garder celle qui correspond le mieux à notre fonctionnement.
En théorie on évite d'installer l'exe sur le poste client, mais plutôt un lien vers un lecteur réseau :
- avantage : tous les exe sont sur le même lecteur ainsi en modifiant l'exe on modifie tous les clients et 2ème avantage on évite les anomalies de Windows (explication si on installe le programme en local et que l'on utilise le lien réseau => le jour d'un micro ou macro coupure réseau Windows modifie tout seul le lien et reprend l'exe installé en local n version en arrière !)
- inconvénient : le déploiement des ressources (avec Vb6 on installait par le programme par le pack de déploiement pour installer tous les objets connexes puis on désinstallait le programme (pour éviter le problème cité ci-dessus)

merci encore pour tes indications

ACT
0
Rejoignez-nous