Windows 符号链接和工作目录

Windows 符号链接和工作目录

我有一个名为的目录,其中有一个使用的apps/myapp/文件和一些其他 dll。myapp.exemyapp.dll

现在假设我想将其符号链接到一个目录,就像在 Linux 中所做的那样。

bin/myapp.exe=> verylongpath/myapp/myapp.exe. 即使用mklink bin/myapp.exe verylongpath/bin/myapp.exe

现在,当我运行 myapp 时,它会大喊找不到 dll。这意味着 exe 没有在其自己的工作目录中运行。这让我很难过。

有什么办法可以让它运行在 ints 自己的工作目录中吗?谢谢!

答案1

您可以创建我的应用程序脚本(代替关联),并在其中写入以下命令:

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

例子:

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

保存以上行openssl命令无论何处都需要捷径。

答案2

您可能需要做的是符号链接包含应用程序二进制文件的文件夹,而不仅仅是 EXE 文件本身。在 Windows 中创建目录符号链接的最兼容方式是使用它们的连接点。

使用此命令:

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

目标路径可以相对于当前位置。您不需要从驱动器号开始。

完成后,您应该能够将 CD 放入您的 linkdirname 并正常运行您的应用程序。

仅供参考:您可以使用 /D 选项来获取目录符号链接,但根据我的经验,我发现连接点的表现要好得多(兼容性也更好)。有些应用程序不会被目录符号链接欺骗,但可以很好地与连接点配合使用。例如,在 Steam 中,我可以使用连接点重新路由游戏文件夹,但不能使用目录符号链接。

相关内容