2

Vue d'ensembleRépertoire multiples Installation

Nous utilisons actuellement InstallShield 2012 pour créer un package MSI de base pour offrir nos logiciels aux clients.

Je suis un autodidacte avec InstallShield donc je doute que je vais suivre les meilleures pratiques que je ne possède cependant une bonne compréhension des actions personnalisées, installscript et boîtes de dialogue. Je suis un peu incertain sur l'éditeur d'annuaire et le directeur de propriété ainsi si ceux-ci sont exigés alors s'il vous plaît allez lentement. Au cours de l'installation, l'utilisateur a demandé à pouvoir installer l'un de nos dossiers sur un autre lecteur de son système, car il contient des informations de journalisation et peut être très volumineux. Ce dossier doit donc être installé en dehors de INSTALLDIR.

But

Je souhaite créer une boîte de dialogue qui permet à l'utilisateur de choisir un emplacement d'installation pour ce dossier lors de l'installation.

Ce processus doit être accompli grâce à l'interface utilisateur, car il doit être assez souple que le contenu du dossier d'enregistrement peut changer de client à client. Donc, idéalement, je voudrais qu'un dossier soit visible dans les données de l'application \ fichiers et dossiers \ Ordinateur de destination, section de l'interface qui permettrait à quiconque vient pour maintenir le projet après moi de simplement glisser et déposer les dossiers là . Bien que la gestion des dossiers devra se faire par l'intermédiaire de l'interface utilisateur, le processus derrière cela c'est-à-dire choisir le dossier et ensuite copier sur les fichiers peut être réalisé de quelque façon que j'ai quelques conseils pour m'aider sur

Ce que j'ai essayé

1. InstallScript & sur mesure Action- j'ai écrit une action personnalisée à l'aide de la AskPath qui prendrait l'emplacement où l'utilisateur a choisi d'installer le dossier journal puis créé un répertoire là-bas. Je coder en dur le contenu du dossier du journal dans installscript (cependant que la structure du dossier peut changer cette approche est devenue trop difficile à maintenir)

2. Composants & Caractéristiques - J'ai essayé d'utiliser le dossier du journal comme séparé fonction et avoir son propre composant, mais je ne pouvais pas obtenir la propriété de reporter la boîte de dialogue et de lier le composant avec la boîte de dialogue qui choisir où installer le dossier du journal.

3. Pré-requis - J'ai regardé en ligne et a constaté que je pourrais être en mesure d'installer le dossier du journal via le gestionnaire pré-requis par Compresser le dossier du journal dans une auto-extractible Zip (je ne l'ai pas eu Je pense que je me suis peut-être rapproché de certaines de mes tentatives pour faire ce que je voulais, mais j'ai continué à frapper des culs-de-sac.

Toute aide serait grandement apprécié et je vous remercie pour la lecture, je sais que c'est un long message.

Cawston

Répondre

1

Il suffit de faire ceci:

Créez deux répertoires dans votre installateur:

INSTALLDIR = [ProgramFilesFolder] Société \ Produit LOGDIR = [INSTALLDIR] Journaux

prennent alors une regardez la boîte de dialogue Dossier de destination. Clonez tous les contrôles qui font les différentes icônes, le texte et le bouton de navigation pour INSTALLDIR.

Modifiez le texte d'affichage de [RÉP INSTALL] à [LOGDIR]. Ensuite, copiez les événements de contrôle sur le bouton Parcourir et modifiez la valeur [_BrowseProperty] à LOGDIR au lieu de INSTALLDIR.

C'est tout. LOGDIR démarrera un enfant de INSTALLDIR mais si l'utilisateur appuie sur Parcourir et le modifie, cette relation est rompue. Vous pouvez ensuite modifier INSTALLDIR et cela ne changera pas LOGDIR.

+0

Merci @Christopher pour votre aide. J'ai suivi les instructions et mis en place les deux répertoires dans la table de répertoire. J'ai ensuite apporté les modifications à la valeur _BrowseProperty. J'ai couru l'installation et toutes les boîtes de dialogue affichées et cela a fonctionné comme je le pensais. Toutefois, le dossier des journaux n'est pas créé et seuls les dossiers INSTALLDIR sont chargés sur le système client. J'ai alors voulu voir si la propriété LOGDIR était peuplée. Alors j'ai regardé le journal d'installation et la valeur est peuplée et apparemment les dossiers sont copiés, mais ils n'existent pas Merci encore Cawston ne peux pas intégrer plus :( – Oliver843

+0

Si un dossier n'a pas Composants avec des fichiers ou des sous-dossiers, alors il doit avoir une entrée dans la table CreateFolder.InstShield gère généralement cela pour vous mais vous pouvez le vérifier en allant dans l'éditeur direct et sélectionnez cette table.Les deux colonnes sont des clés pour les tables Directory et Component Ceci enseigne à l'installateur que quand un certain composant est installé, un certain répertoire doit être créé –

+0

Merci @Christopher Vous avez été d'une grande aide et avez résolu beaucoup d'une heure de maux de tête futurs – Oliver843

Questions connexes