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?
6 réponses
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 où les entités HTML sont utilisées pour les symboles moins-que/plus-que des j'ai fait un second test (qui aurait dû être le premier) en utilisant le Jusqu'à présent les choses semblent se résoudre correctement mais votre la relativité peut varier. (Beaucoup plus facile d'avoir la réponse sur cette page...) 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 voici ma solution si la partion du disque de vos "fichiers source"n'est pas la même que 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..
...<td><ISPROJECTDIR>..\..\MyProject\bin\Release\...
...<td><ISPROJECTFOLDER>..\MyProject\bin\Release\...
<ISProjectFolder>
est la macro du répertoire contenant le projet Install Shield.