75 votes

Comment faire un installateur pour mon application C# ?

J'ai créé une application ( C# , Formulaires Windows ) sur Visual Studio 2008 et maintenant je veux faire un installateur de cette application. Comment cela peut-il être fait ?

Je veux que mon installateur

  • Copiez tous les fichiers que mon l'application utilise vers un chemin choisi par l'utilisateur (copier les fichiers vers choisis, certains pour l'application côté serveur et et d'autres pour le côté client).
  • Installez également .NET 3.5
  • Vérifiez si SQL Server o SQL Server Express Edition

Comment puis-je le faire ?

72voto

sashaeve Points 3002
  1. Ajoutez un nouveau projet d'installation à votre solution.
  2. Ajoutez les cibles de tous les projets que vous souhaitez installer.
  3. Configurez les pré-requis et choisissez l'option "Check for .NET 3.5 and SQL Express". Choisissez l'emplacement à partir duquel les composants manquants doivent être installés.
  4. Configurez les paramètres de votre installateur - nom de la société, version, copyright, etc.
  5. Construisez et partez !

0 votes

Est-ce que cela permettra la fonctionnalité MSI ? Il semble que cela soit nécessaire - "copier les fichiers sur le choix..." peut-être que vous pouvez vous en sortir avec 2 installateurs différents ? mais si le projet d'installation ne fournit pas de fonctionnalités, allez avec wix.

0 votes

Si vous avez besoin d'une logique d'installation spécifique, vous pouvez écrire un code (et ajouter vos propres formulaires) qui fera le travail dont vous avez besoin.

0 votes

"Ajoutez les cibles de tous les projets que vous voulez installer." comment... je ne sais rien à ce sujet...

19voto

Anton Gogolev Points 59794

D'une manière générale, il est recommandé d'utiliser des installations basées sur MSI sous Windows. Donc, si vous êtes prêt à investir un peu de temps, WiX est la voie à suivre.

Si vous voulez quelque chose de beaucoup plus simple, optez pour InnoSetup .

0 votes

Wix est la solution idéale si vous souhaitez avoir un meilleur contrôle sur votre MSI. Cependant, son apprentissage demande plus d'efforts. Selon la documentation de Wix, MS Office utilise également Wix pour créer ses installations.

11voto

Asad Butt Points 8989

Il existe plusieurs méthodes, dont deux sont les suivantes. Fournir un installateur personnalisé ou un projet d'installation.

Voici comment créer un installateur personnalisé

[RunInstaller(true)]
public class MyInstaller : Installer
{
    public HelloInstaller()
        : base()
    {
    }

    public override void Commit(IDictionary mySavedState)
    {
        base.Commit(mySavedState);
        System.IO.File.CreateText("Commit.txt");
    }

    public override void Install(IDictionary stateSaver)
    {
        base.Install(stateSaver);
        System.IO.File.CreateText("Install.txt");
    }

    public override void Uninstall(IDictionary savedState)
    {
        base.Uninstall(savedState);
        File.Delete("Commit.txt");
        File.Delete("Install.txt");
    }

    public override void Rollback(IDictionary savedState)
    {
        base.Rollback(savedState);
        File.Delete("Install.txt");
    }
}

Pour ajouter un projet d'installation

  • Menu fichier -> Nouveau -> Projet --> Autres types de projets --> Configuration et déploiement

  • Définir les propriétés du projet, en utilisant la fenêtre des propriétés

L'article Comment créer un paquetage d'installation en utilisant Visual Studio .NET fournit les détails.

0 votes

Comment comptez-vous exécuter ce code alors que .NET 3.5 va être installé dans votre installateur ?

0 votes

@Moon vous pourriez dire dans la description du programme qu'il nécessite .NET XY

3voto

Diansheng Points 584

Pourquoi inventer des roues soi-même alors qu'il y a une voiture prête pour vous ? Je trouve cet outil super facile et intuitif à utiliser : Advanced Installer. Ce vidéo d'une minute devrait être suffisant pour vous impressionner. Voici le guide illustré de l'utilisateur .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X