Ajouter un exécutable dans un projet de déploiement
Bonjour,
J'ai développé une application winforms en utilisant VS 2008. Puis j'ai créé un projet de déploiement dans lequel j'ai mis tous les DLL et les dépendances de cette application. Mon pb est que j'ai besoin de lancer un exécutable au début de l'installation. J'ai pas trouvé comment faire ça. Est ce qu'il y a qq'un qui peut m'aider.
Merci
run executable before install
bonjour
Que veux-tu dire avant l'installation ? ou se trouve cet exe ? deja installe sur la machine user?
S'il est dans ton package msi ,son lancement ne peut se faire que dans le commit de l'installarion (validation en francais) c.à.d apres installation autrement il n'existe pas encore sur la machine user.
voici un projet de classe dll donne par MSDN pour c#:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
//1- cree un projet classlibrary
//2- ajoute nouvel element class installer :Installer1
//3- supprime le fichier class1.cs (ne sert à rien)
//3- creer un projet WinApp (executable de test)
//4- rajoute à ton projet setup les 2 projets ci-dessus
// modifie ta classe Installer comme ci-dessous( code exemple en bas)
// je l'ai modifie pour lancer l'executable "WinApp.Exe" inclus dans le package
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;
using System.IO;
namespace SetupHelperSHARP
{
[RunInstaller(true)]
public partial class Installer1 : Installer
{
public Installer1()
{
InitializeComponent();
}
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);
}
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
public override void Commit(IDictionary savedState)
{
base.Commit(savedState);
FileInfo chemin = new FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location);
System.Diagnostics.Process.Start(chemin.DirectoryName + "\\winapp.exe");
//System.Diagnostics.Process.Start("http://www.microsoft.com");
}
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
public override void Rollback(IDictionary savedState)
{
base.Rollback(savedState);
}
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
public override void Uninstall(IDictionary savedState)
{
base.Uninstall(savedState);
}
}
} |
si tu veux l'executer avant cela signifie :
-Il est deja installe chez l'user et tu connais son chemin (dossier special machine du genre directory.system,program files) et tu fais Process.Start(chemin de l'exe).
lien msdn
http://msdn.microsoft.com/en-us/libr...100).aspx#Y419
bon code.....