Межплатформенный ярлык для исполняемого файла, оба в архиве

477
Zefir Zdravkov

У меня есть каталог ( который позже архивируется ), в котором есть ярлык для исполняемого файла ( .exe ), который сам по себе на несколько каталогов глубже. Первая возникшая проблема - ярлыки " .lnk " требуют точного пути. Например, « D: /someFolder/parentOfShortcut/files/dir/dir/dir/software.exe commandForTheExe », и если каталог parentOfShortcut перемещен в корневой каталог (например), ярлык все равно будет искать приложение в « D: / someFolder / parentOf ... ". Я подумал об использовании файла « .bat », однако это решение только для Windows, в то время как само приложение совместимо также с Linux и MacOS. Вторая проблема " .«пользователи никогда не доверяют таким типам файлов, как и любое антивирусное программное обеспечение.

Трудно сказать, что расположение parentOfShortcut может быть где угодно, поскольку пользователи загружают эту папку (в виде архива .zip ) и могут свободно сохранять ее в любом каталоге на своем компьютере.

Для справки, вот точная структура файла

(unknown path)/MySoftware(.zip) +- Shortcut.lnk |- files |- node_modules |- dist +- theApp.exe (with command "boot.main") 

Редактировать:

.Exe не может быть перемещен, поскольку он зависит от DLL - файлов, в том же, в верхней и в некоторых каталогах нижнего уровня.

1
Как само приложение кроссплатформенное? Приложения Mac, как правило, представляют собой связку с исполняемым файлом определенного уровня, myApp.app/Contents/MacOs/myApp, поэтому всегда следует «знать, где они». Tetsujin 6 лет назад 0
@Tetsujin Путь не совсем неизвестен; это зависит от того, где пользователь устанавливает архив. Zefir Zdravkov 6 лет назад 0
приложения входят в / Приложения обычно или для одного пользователя ~ / Приложения. Искатель будет знать, где это в любом случае. Обычно они доставляются в виде dmg-файлов с удобным перетаскиванием в приложения, если только им не требуется установщик и повышенные разрешения. Tetsujin 6 лет назад 0
@ Tetsujin Я лично не пользователь macOS, но приложение (Electron) претендует на то, чтобы быть исполняемым и полностью функционирующим на этой платформе. Zefir Zdravkov 6 лет назад 0
Вы можете использовать файл «.bat» для Windows и другие скрипты для Linux и Mac. Но обычное решение - иметь зависящий от платформы сценарий установки, который создаст ссылку. harrymc 6 лет назад 0
выглядит как какая-то вещь в JavaScript. далеко за пределами моей области знаний и что-то, о чем вы должны спросить в переполнении стека. В любом случае ... кросс-платформенного ярлыка не существует - Mac не может анализировать файлы .lnk, а Win не знает, что делать с псевдонимом. Tetsujin 6 лет назад 0
@harrymc В этом случае установка должна зависеть от платформы только из-за ярлыка, поскольку сам «.exe» является кроссплатформенным исполняемым файлом. Zefir Zdravkov 6 лет назад 0
@PimpJuiceIT `exe` от проверенного издателя: GitHub Zefir Zdravkov 6 лет назад 0
@PimpJuiceIT `exe` принадлежит GitHub (и Google отдельно), и пользователи скачивают его с моего сайта, а не с github.com или google.com, потому что` .zip` содержит файлы и дополнительное программное обеспечение, которое я создаю. Если вы скачали Chrome от неизвестного издателя, запустили бы какой-нибудь `.bat` из корня? Я бы не стал, но я бы, конечно, запустил бы ярлык для самого приложения, потому что какой вред это может принести? Zefir Zdravkov 6 лет назад 0
Не беспокойтесь, делайте что хотите и удачи! Как FYI, есть много zip-пакетов, которые включают в себя пакетные сценарии, которые запускаются по мере необходимости по мере необходимости после извлечения по разным причинам, поэтому я предложил то, что я видел в составе многих пакетов, как вы описываете. Я скорее администратор, чем разработчик пакетов, поэтому предложил только то, что считаю «нормальным и типичным» из моих лет работы над многими проектами как таковыми на уровне систем и пакетов, с которыми мне приходилось иметь дело для различных компаний и отраслей. , Вы можете открыть файл bat и увидеть его логику / содержимое, тогда как вы не можете с таким exe-файлом. Pimp Juice IT 6 лет назад 0

1 ответ на вопрос

1
harrymc

Я не пользователь Electron, но вот некоторые ресурсы, которые я собрал.

Для создания ярлыков на рабочем столе вам потребуется программа установки. Есть пара таких кроссплатформенных продуктов, которые, как говорят, способны на это, хотя неясно, насколько хорошо они работают на различных платформах.

Не являясь пользователем Electron, я не могу тестировать эти продукты, но могу поделиться этими деталями.

Для строителя электронов в одном сообщении Github говорится:

Установите createDesktopShortcutв always.

"nsis": { "createDesktopShortcut": "always" } 

Независимо от того, чтобы создать ярлык на рабочем столе. Установите, alwaysесли воссоздать также при переустановке (даже если пользователь удалил).

StackOverflow сообщение содержит различные советы, но добавляет это специально для электронно-кузницы очевидно для Windows:

Вы можете попробовать конфигурацию, которая выглядит следующим образом:

"electronPackagerConfig": { "icon": "Icon", "win32metadata":{ "ProductName": "My App", "CompanyName": "My Company" } } 

Более подробная информация здесь: https://github.com/electron-userland/electron-forge/issues/89

Другой ответ в том же посте добавляет это для строителя электронов:

Попробуйте использовать электронный строитель, если вам больно с Белкой. Вы можете использовать команду как ниже, чтобы сделать ваш установщик для Windows:electron-builder path/to/your-electron-packager-output --platform=win --out=path/to/your-installer-output --config=path/to/builder.json --target=win

Пример содержимого для builder.json:

{"win": {"title": "Имя моего производства", "icon": "path / to / your-icon.ico", "version": "1.0.0", "publisher": "Название вашей компании "}}

Ps: Вы должны установить NSIS и добавить путь NSIS в среду PATH перед запуском вышеупомянутой команды.

Посмотрите на этот другой пост StackOverflow. Создание ярлыка на рабочем столе с помощью событий Squirrel с помощью Electron, который, кажется, стоит прочитать, поскольку в нем показана процедура, которая, как сообщается, работает.

С другой стороны, вы можете воздержаться от использования любого из электронных упаковщиков и сделать это самостоятельно с помощью проверенного кроссплатформенного установщика, такого как:

  • ИзПак (бесплатно)
  • InstallBuilder для Qt (бесплатно для проектов с открытым исходным кодом и в остальном не так дорого)
  • InstallBuilder (коммерческий и очень дорогой в $ 1,995)

Я надеюсь, что это поможет вам начать. Не думайте, что любой из сборщиков электронных пакетов будет работать для всех операционных систем, поэтому вам может потребоваться более одной. Все проверяй, ничего не предполагай, это мой совет.

Увы, у меня проблемы с интернетом, и поэтому я не могу проверить предоставленные вами ресурсы. Я обязательно рассмотрю это завтра (пятница). Zefir Zdravkov 6 лет назад 0
Я думаю, что вы меня забыли. harrymc 6 лет назад 0