A chaque livraison de mon appli chez le client, je réinstalle le projet en exécutant le setup. (le setup me copie l'EXE, les DLL et le fichier de config)
Le problème c'est que le fichier de config du client est écrasé par le nouveau... et il est obliger de reconfigurer l'appli...
Par quel moyen résoudre ce problème ? Est-il possible de ne pas écraser le .config s'il existe ????
J'ai bien ajouté la sortie principale qui contient la classe installer.
Mais j'ai trouvé une solution.
En faite j'ai renommé mon "App.config" en "App.config.dev" et je l'ai ajouté dans le projet de mon setup. (pour qu'il soit copier dans le repertoire d'installe chez le client)
Puis dans la methode AfterInstall, je vérifie s'il existe un fichier de config (MONAPPLI.exe.config) et je renomme le app.config.dev en MONAPPLI.exe.config et je supprime le fichier de config qui ne me sert pas.
J'avoue ne pas bien connaître le setup de VS, mais je crois me souvenir qu'il existe un truc du genre "Condition" pour les fichiers qui permet de choisir à quelle condition ton fichier est installé ou non. Tu peux peut-être regarder par là...
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
Tu peux créer un DLL avec une classe qui hérite de Installer et surcharger les méthodes BeforeInstall et Commit.
Ainsi, tu pourrais sauvegarder le appp.config puis le restaurer lors du commit.
J'ai un problème avec l'utilisation de BeforeInstall...
J'ai ajouté l'évènement dans le constructeur comme suit :
public Installer(): base()
{
InitializeComponent();
BeforeInstall += new InstallEventHandler(BeforeInstallEventHandler);
AfterInstall += new InstallEventHandler(AfterInstallEventHandler);
}
Puis j'ai codé ma fonction.
Mais apparemment il ne passe dedans qu'après l'installation.
Où ai-je pu me tromper ?
Dans ton programme de déploiement, il faut aller dans la vue des actions personnalisées et ajouter la sortie principale de ta dll qui contient ta classes installer.