Хобрук: Ваш путь к мастерству в программировании

Включить файл, который не находится в том же каталоге, что и скрипт

У меня есть сценарий NSIS, который пытается включить файл .NSI, находящийся в другой папке.

Моя проблема: когда я пытаюсь скомпилировать свой скрипт, я получаю ошибку компиляции !include: could not find: "../Utilities.nsi". Этот файл существует и находится в правильном месте, которое я указываю (в родительском каталоге - один шаг назад).

Как я могу включить файл, который находится в другом каталоге? Я надеюсь, что это возможно.

!include "../Utilities.nsi" # include error: '!include: could not find: "../Utilities.nsi"'

InstallDir  "abc"
Name        "def"        
OutFile     "def.exe"

Section
    DetailPrint "Hello World"
SectionEnd
07.01.2013

  • Вы читали руководство? В нем говорится, что эта команда будет включать «файл», как если бы он был частью исходного сценария. Обратите внимание, что если файл включен в другой каталог, текущий каталог по-прежнему находится в том месте, откуда был скомпилирован сценарий (а не в том месте, где находится включенный файл). Если компилятор не может найти файл, он будет искать его во всех включаемых каталогах. См. !addincludedir для получения дополнительной информации. Если используется ключ /nonfatal и файлы не найдены, вместо ошибки будет выдано предупреждение. Кроме того, в примерах в руководстве не используются кавычки — вы пробовали их удалить? Кроме того, / =› \ 07.01.2013
  • @torazaburo спасибо !addincludedir работает. Вы должны опубликовать как ответ, чтобы я мог принять. 07.01.2013

Ответы:


1

В руководстве говорится о !include:

Эта команда будет включать «файл», как если бы он был частью исходного сценария. Обратите внимание, что если файл включен в другой каталог, текущий каталог по-прежнему находится в том месте, откуда был скомпилирован сценарий (а не в том месте, где находится включенный файл). Если компилятор не может найти файл, он будет искать его во всех включаемых каталогах. См. !addincludedir для получения дополнительной информации. Если используется ключ /nonfatal и файлы не найдены, вместо ошибки будет выдано предупреждение."

Кроме того, в примерах в руководстве не используются кавычки — вы пробовали их удалить? Кроме того, "/" => "\".

07.01.2013
  • Мне помогло переключение косой черты на обратную в !addincludedir. Ваше здоровье. 21.02.2013
  • Новые материалы

    #093 | Моделирование вспышки эпидемии с помощью JavaScript — Часть 3
    TLDR: Я сделал симуляцию вспышки эпидемии, в которую можно поиграть здесь . Мой холст, моя сцена Мой HTML — это всего лишь один div с классом stage, и вот как я настроил на нем свой объект..

    numberToString.js (8kyu 16)
    Алгоритм кодовых войн Проблема Нам нужна функция, которая может преобразовать число в строку. 숫자를 문자열로 변환하는 함수를 작성해라. Решение 01 function numberToString(n) { return n.toString(); }..

    Лучшие практики для быстрого изучения языка программирования
    Изучение языка программирования может быть сложной задачей, но при правильном подходе определенно возможно быстро выучить язык программирования. Хорошее понимание языка программирования может..

    Использование данных из Adobe Analytics в предложениях Adobe Target
    Я уверен, что все видели эти всплывающие окна в интернет-магазинах, которые говорят что-то вроде « 15 человек просматривают этот товар прямо сейчас! » или « 105 человек из Мичигана купили это..

    Машинное обучение и его набор данных в CreateML
    Когда я впервые начал учиться в Apple Developer Academy, у меня был момент неуверенности в моем интересе к машинному обучению. Нужно ли мне сменить карьеру моей мечты с специалиста по данным на..

    Обучение требует воли
    Недавно я прочитал отличную статью Шейна Легга и Джоэла Венесса из DeepMind. http://arxiv.org/pdf/1109.5951v2.pdf В статье «универсальный интеллект» агента π определяется как: Поэтому..

    Безопасность по дизайну делает всех счастливыми
    Заложенная безопасность делает всех счастливыми Если вы никогда не смотрели Louis C.K. рассказать о том, как Все удивительно, и никто не счастлив ; побаловать себя. Сделайте это прямо..