InstallShield relatifs à des chemins de fichiers

Comment puis-je ajouter un fichier à un composant InstallShield spécifiant un chemin relatif au projet InstallShield afin de le rendre facile à compiler sur différentes machines?

25
demandé sur Stein Åsmul 2011-08-02 17:10:13

6 réponses

Vous pouvez utiliser <path variables> ( - ressuscité de Wayback, août 2018) pour pointer tous vos fichiers par rapport à eux.

Voir aussi ce post.

17
répondu Dror 2018-08-21 19:15:06

avec L'édition gratuite VS limitée de InstallShield, configurer des chemins personnalisés ne semble pas possible. Ainsi, le piratage du fichier ISL peut être nécessaire avec seulement quelques options de chemin prédéfinies disponibles.

Voici les variables de chemin prédéfinies que j'ai trouvées dans L'Express docs 2013: (vérifier en cas de fautes de frappe)

    Predefined Path                              Variable Value                       InstallScript Path Variable
    --------------------------------------------------------------------------------------------------------------
    <ProgramFilesFolder>                         C:\Program Files\                    <PROGRAMFILES>
    <CommonFilesFolder>                          C:\Program Files\Common Files\       <COMMONFILES>
    <WindowsFolder>                              C:\Windows\                          <WINDIR>
    <SystemFolder>                               C:\Windows\System32\                 <WINSYSDIR>
    <ISProjectFolder>                            C:\InstallShield 2013 Projects\      
    <ISProjectDataFolder>                        <ISProjectFolder>\ProjectName        <ISPROJECTDIR>
    <ISProductFolder>                            C:\Program Files\InstallShield13  
    <ISRedistPlatformDependentFolder>            C:\Program Files\InstallShield13\
                                                    .\Redist\Language Independent\i386
    <ISRedistPlatformDependentExpressFolder>     C:\Program Files\InstallShield13\
                                                    .\Redist\Language Independent\
                                                    .\i386 Express

ma solution VS inclut à la fois un addin D'Outlook et un projet DE setup le D'InstallShield. Bien que InstallShield incluait la sortie générée par AddIn et des assemblées connexes, ni le manifeste ni les fichiers vsto n'ont été inclus. J'ai donc besoin de spécifier séparément. Cela a fonctionné pour un poste de travail; cependant, un autre poste partageant la solution avait une structure de répertoire source différente donnant des sources non résolues.

les fichiers manifest et vsto ont été ajoutés par InstallShield avec absolute paths. Un lien symbolique commun à toutes les stations de travail aurait pu résoudre le problème, mais j'ai décidé de hacker les fichiers ISL pour voir s'il est possible d'utiliser chemins relatifs réalisant le fichier ISL peut nécessiter de l'entretien de piratage dans l'avenir.

pour obtenir le répertoire parent commun (c'est-à-dire le répertoire solution dans mon cas), j'ai spécifié les deux sélecteurs parent suivants (..\..) dans L'ISL pour les artéfacts Spéciaux énumérés dans

.

...<td>&lt;ISPROJECTDIR&gt;..\..\MyProject\bin\Release\...

où les entités HTML sont utilisées pour les symboles moins-que/plus-que des variable.

j'ai fait un second test (qui aurait dû être le premier) en utilisant le variable au lieu de . Dans cet essai, un seul sélecteur parent était nécessaire:

...<td>&lt;ISPROJECTFOLDER&gt;..\MyProject\bin\Release\...

Jusqu'à présent les choses semblent se résoudre correctement mais votre la relativité peut varier.

30
répondu bvj 2014-05-13 23:06:22

<ISProjectFolder> est la macro du répertoire contenant le projet Install Shield.

(Beaucoup plus facile d'avoir la réponse sur cette page...)

13
répondu Matt Connolly 2013-04-18 05:49:30
  • chemins relatifs fixes pour le contenu du fichier à copier par L'édition limitée du Bouclier D'installation dans le répertoire de sortie (Visual Studio 2012 ) Les étapes:
  • développez votre projet d'installation dans L'Explorateur de solutions pour voir les sections 1,2,3,4,5,6
  • étendre '2' et double cliquer sur 'Fichiers' Vous verrez une page à quatre panneaux: avec 'fichiers de l'ordinateur Source' et 'fichiers de L'ordinateur de Destination'
  • supprimez vos chemins et fichiers codés à partir de la Destination de fichiers de l'ordinateur'
  • cliquez dans le panneau supérieur gauche, sur le projet qui a vos fichiers comme 'Fichiers de contenu'
  • le panneau supérieur droit affichera 'les fichiers de contenu de MyProject'
  • cliquez et faites glisser ceci dans le panneau inférieur droit (les 'fichiers de l'ordinateur de Destination')

retournez dans votre projet et assurez-vous que tous vos fichiers que vous voulez copier ont des propriétés: Construire Action=Contenu et Copie vers le répertoire de sortie=Copy

4
répondu Dwarf 2013-05-07 21:12:50

voici ma solution si la partion du disque de vos "fichiers source"n'est pas la même que :

  1. ouvrir le fichier de script installshield (*.isl) avec le bloc-notes;
  2. connaître la variable prédéfinie " ", c'est le dossier de votre solution d'installation
  3. remplacer le chemin absolu du ou des fichiers dans le chemin relatif vers "solution foler". c'est à dire & lt;VSSolutionFolder& gt;..\..\exe\release \ myapp.exe
1
répondu user3575025 2014-04-26 03:03:49

lorsque vous ajoutez le fichier, vous devriez essayer de le faire relativement au fichier du projet installshield. Si vous gardez le .le fichier ism dans votre arborescence des sources, alors tout exécutable que vous ajoutez devrait avoir un chemin relatif à ce fichier.

0
répondu Anthony Giorgio 2011-08-02 18:36:33