В бесплатной версии VS LimitedS InstallShield установка пользовательских путей не представляется возможной. Таким образом, взлом файла ISL может потребоваться при наличии только нескольких предопределенных параметров пути.
Вот предопределенные переменные пути, которые я нашел в документах Express 2013 года: (Проверьте в случае опечаток)
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\InstallShield\2013
<ISRedistPlatformDependentFolder> C:\Program Files\InstallShield\2013\
.\Redist\Language Independent\i386
<ISRedistPlatformDependentExpressFolder> C:\Program Files\InstallShield\2013\
.\Redist\Language Independent\
.\i386 Express
Мое решение VS включает в себя как Outlook AddIn, так и проект установки InstallShield LE. Хотя InstallShield включал сгенерированные AddIn выходные данные и связанные сборки, ни файлы манифеста, ни файлы vsto не были включены. Поэтому мне нужно было указать это отдельно. Это работало на одной рабочей станции; однако другая рабочая станция, использующая это решение, имела другую структуру каталогов с исходными файлами, что давало неразрешенные источники.
Файлы манифеста и vsto были добавлены InstallShield с абсолютными путями. Символьная ссылка, общая для всех рабочих станций, могла бы решить проблему, но я решил взломать файлы ISL, чтобы увидеть, возможно ли использовать относительные пути, понимающие, что файл ISL может потребовать взлома обслуживания в будущем.
Чтобы получить общий родительский каталог (т. Е. Каталог решения в моем случае), я указал следующие два родительских селектора (.. \ ..) в ISL для специальных артефактов, перечисленных в <имя таблицы = "Файл"> .
...<td><ISPROJECTDIR>..\..\MyProject\bin\Release\...
где объекты HTML используются для окружающих символов «меньше / больше» переменной .
Я провел второй тест (который должен был быть первым), используя переменную вместо . В этом тесте был нужен только один родительский селектор:
...<td><ISPROJECTFOLDER>..\MyProject\bin\Release\...
Пока кажется, что все решается правильно, но ваша относительность может отличаться.