2009-10-02 7 views
0

J'ai joué avec Installshield 2009 et C# pour créer un projet d'installation qui valide une clé série (l'algorithme écrit en .NET) avant l'installation. Cela fonctionne très bien.Installshield 2009 Multiple Serial Keys

Cependant, j'ai plusieurs versions d'un produit. En ce moment j'utilise des projets d'installation séparés pour chaque version. Cependant, beaucoup de fichiers sont identiques, avec seulement de petites variations dans les fichiers inclus ou non. J'aimerais que je puisse avoir un seul projet de déploiement qui installe certains fichiers en fonction de la clé série valide détectée. Fondamentalement, je me demande si ce genre de chose est possible avec Installshield.

Merci à l'avance

Répondre

1

Windows Installer est pas bien adapté au scénario que vous décrivez, au moins, sauf si vous prenez le temps pour empêcher l'utilisation des fichiers mal installés avec une sorte de technologie de licence. Vous pourriez avoir votre DLL de validation de série également définir une propriété que diverses fonctionnalités ou composants conditionnent, mais une transformation peut facilement contourner cela. Sauf si vous avez pris (ou pouvez prendre) le temps d'implémenter la vérification de licence, le mieux est de maintenir des versions séparées (une par ensemble de fichiers autorisés). Cependant, vous pourrez peut-être les fusionner en un seul projet. En fonction de ce qui diffère exactement d'une construction à l'autre, je pense qu'il existe deux approches complémentaires qui vous permettent d'obtenir des références distinctes. Le premier est le plus facilement spécifié par version, et vous pouvez sélectionner la version à créer, par ex. à partir de la ligne de commande. La seconde est indépendante de la version et peut être mise à jour manuellement ou peut être surchargée dans une construction de ligne de commande.

  1. Drapeaux de sortie

    Vous pouvez séparer les groupes d'éléments en fonctionnalités supplémentaires (peut-être cachés afin qu'ils ne pas encombrer la boîte de dialogue fonction de sélection), puis utiliser des indicateurs de libération sur un par la libération d'inclure ou exclure ces fichiers au moment de la construction. Cela fonctionnerait probablement mieux si vous modifiez les fichiers de contenu, mais continuez à utiliser la même DLL d'action personnalisée sur des références distinctes.

  2. Variables de chemin

    Le chemin de votre DLL d'action personnalisée peut être spécifiée avec une variable de chemin que vous pouvez ensuite utiliser pour remplacer l'emplacement source du fichier. Assurez-vous que l'entrée correspondante (probablement dans la table Fichier ou Binaire) utilise sa propre variable dans les chevrons, et vous pouvez également l'échanger individuellement au moment de la construction. Cela a du sens si vous avez besoin de modifier votre DLL d'action personnalisée et si vous pouvez l'utiliser en même temps que Release Flags.

0

Vous pouvez ajouter et supprimer des fonctionnalités lors de l'exécution. Cela peut être accompli avec (a) les propriétés du programme d'installation ou (b) dans les scripts de bouclage d'installation.

D'abord, vous ajouteriez toutes les fonctionnalités pour toutes les versions du projet. Vous devez vous assurer qu'ils ne sont pas sélectionnés pour être installés. Ensuite, vous utiliseriez la méthode a ou b pour en sélectionner une en cours d'exécution.

Les propriétés de l'installateur (a) peuvent être définies de différentes manières. La ligne de commande bascule vers le programme d'installation, les versions du système d'exploitation, certaines clés reg étant présentes ou via une logique personnalisée dans une DLL. Et les fonctionnalités peuvent être incluses/exclues en fonction de la valeur d'une propriété d'installation.

En ce qui concerne (b), le script a accès à la fonctionnalité « arbre » et peut sélectionner & désélectionner les basé sur une logique personnalisée en utilisant FeatureSelectItem(), etc.

Questions connexes