4

У меня есть каталог с именем apps/myapp/ с файлом myapp.exe который использует myapp.dll и некоторые другие библиотеки DLL .

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

bin/myapp.exe => verylongpath/myapp/myapp.exe . Т.е. с помощью mklink bin/myapp.exe verylongpath/bin/myapp.exe

Теперь, когда я запускаю myapp, он вопит против меня, что не может найти DLL. Это означает, что исполняемый файл не запускается в своем собственном рабочем каталоге. Что делает меня грустным.

Есть ли как-то я могу заставить его работать в собственной рабочей директории ints? Спасибо!

2 ответа2

2

Скорее всего, вам понадобится символически связать папку, содержащую двоичные файлы вашего приложения, а не только сам файл EXE. Наиболее совместимый способ сделать символическую ссылку на каталог в Windows - это использовать их точки соединения.

Используйте эту команду:

mklink /J ..\link\target\dir linkdirname

Пути к цели могут быть относительно текущего местоположения. Вам не нужно начинать с буквы диска.

Как только это будет сделано, вы сможете записать CD на ваше имя_ссылки и запустить приложение в обычном режиме.

К вашему сведению: вы можете использовать параметр /D для символьной ссылки на каталог, но по своему опыту я обнаружил, что точки соединения ведут себя гораздо лучше (и более совместимо). Некоторые приложения не одурачены символическими ссылками каталогов, но успешно работают с соединениями. Например, в Steam я могу перенаправлять папки с играми, используя переходы, но не с символическими ссылками на каталоги.

0

Вы можете создать myapp.bat (вместо ссылки) и написать в нем следующую команду:

call "absolute\path\of\your\excecutable" %*

Пример:

@call "C:\Program Files (x86)\GnuWin32\bin\openssl.exe" %*

Сохраняйте вышеуказанные строки в openssl.bat везде, где вам нужен ярлык.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .