Подтвердить что ты не робот

InstallShield - относительные пути к файлам

Как добавить файл в компонент InstallShield, указав относительный путь к проекту InstallShield, чтобы упростить компиляцию проекта на разных машинах?

4b9b3361

Ответ 2

С бесплатным VS Limited Edition от InstallShield настройка пользовательских путей не представляется возможной. Поэтому взломать файл ISL может потребоваться наличие только нескольких предопределенных параметров пути.

Вот предопределенные переменные пути, которые я нашел в документах Express Express 2013: (Verify в случае опечаток)

    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 включал в себя выходные данные Addon и связанные сборки, ни файлы манифеста, ни vsto не были включены. Поэтому мне нужно было указать их отдельно. Это работало на одной рабочей станции; однако другая рабочая станция, использующая решение, имела другую структуру исходного каталога, предоставляющую нерешенные источники.

Файлы манифеста и vsto были добавлены InstallShield с абсолютными путями. Символьная ссылка, общая для всех рабочих станций, могла решить проблему, но я решил взломать ISL файлы, чтобы увидеть, можно ли использовать относительные пути, реализующие ISL файл, может потребоваться взлом в обслуживании в будущем.

Чтобы получить общий родительский каталог (т.е. каталог решений в моем случае), я указал следующие два родительских селектора (.. \..) в ISL для специальных артефактов, перечисленных в таблице < name= "Файл" > .

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

где объекты HTML используются для окружающих символов меньшего или большего размера, чем <ISPROJECTDIR> .

Я выполнил второй тест (который должен был быть первым), используя переменную <ISPROJECTFOLDER> вместо <ISPROJECTDIR> . В этом тесте необходим только один родительский селектор:

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

До сих пор все кажется правильным, но ваша относительность может быть разной.

Ответ 3

<ISProjectFolder> - это макрос для каталога, содержащего проект Install Shield.

(Намного легче получить ответ на этой странице...)

Ответ 4

  • фиксированные относительные пути для содержимого файла, который должен быть скопирован с помощью Install Shield Limited Edition в выходной каталог (Visual Studio 2012) Шаги:
  • Разверните проект установки в Обозревателе решений, чтобы увидеть разделы 1,2,3,4,5,6
  • Разверните "2" и дважды щелкните "Файлы", Вы увидите страницу с четырьмя панелями: с "Исходными компьютерными файлами" и "Файлы компьютеров назначения"
  • удалите свои жестко закодированные пути и файлы из файлов "Целевой компьютер"
  • Нажмите на верхнюю левую панель, в проекте, где ваши файлы находятся в разделе "Файлы содержимого"
  • верхняя правая панель отобразит "Content Files from MyProject"
  • щелкните и перетащите его в нижнюю правую панель ( "файлы компьютера назначения" )

Вернитесь в свой проект и убедитесь, что все ваши файлы, которые вы хотите скопировать, имеют свойства: Build Action = Content а также Копировать в каталог вывода = Копировать всегда

Ответ 5

Вот мое решение, если ваш дисковый раздел "исходных файлов" не был таким же, как <ISProjectFolder> :

  • Откройте файл installshield script (*.isl) с помощью блокнота;
  • знать предопределенную переменную "<VSSolutionFoler> ", это папка вашей папки с установочным решением.
  • Замените абсолютный путь файла (ов) на относительный путь к файлу решения. то есть и lt; VSSolutionFolder & GT;.. \..\EXE\выпуск\myapp.exe

Ответ 6

Когда вы добавляете файл, вы должны попробовать, чтобы он был относительно файла проекта installshield. Если вы сохраняете файл .ism в исходном дереве, то любые исполняемые файлы, которые вы добавляете, должны иметь путь к этому файлу.