![从不同的终端路径运行 Wine 应用程序会产生不同的结果吗?](https://linux22.com/image/1202904/%E4%BB%8E%E4%B8%8D%E5%90%8C%E7%9A%84%E7%BB%88%E7%AB%AF%E8%B7%AF%E5%BE%84%E8%BF%90%E8%A1%8C%20Wine%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E4%BC%9A%E4%BA%A7%E7%94%9F%E4%B8%8D%E5%90%8C%E7%9A%84%E7%BB%93%E6%9E%9C%E5%90%97%EF%BC%9F.png)
我将使用游戏“cosmoteer”作为示例(因为它是免费的),但我在其他人的游戏里也遇到了这个问题。
问题:
如果我运行:
cd /path/to/executable/
wine exec.exe
程序运行。
但如果我这么做:
wine /path/to/executable/exec.exe
程序/应用程序更改了“工作目录”(我认为它是这样称呼的)并且无法执行。
你们知道这里的问题是什么吗?我在网上找不到与此类似的解决方案。或者至少有一个有解决方案的,其中大多数都是没有答案的空线程。
答案1
答案2
wine 可执行文件不会将目录更改为您传递给它的可执行文件的路径。这是必要的,否则您将无法运行 wine /path/to/7-zip 并让它在当前目录上运行......它总是会令人烦恼且无用地在 7-zip 目录上运行!
对于 Windows 应用程序,可执行文件的文件夹中经常会存在各种依赖项,因此最好在运行之前先 cd 到该文件夹中。如果您不想丢失当前目录,您可以随时执行以下操作:
pushd /path/to/executable/
wine exec.exe;
popd
希望有所帮助。
PS 我很想知道你采取了哪些步骤,以及你让 cosmoteer 运行起来的运气如何。我的朋友暂时迷上了这款游戏,我想尝试一下,但我无法运行安装程序。它只是告诉我我的系统不符合 dotnet 框架要求,但我使用 playonlinux 在游戏开始前将最新版本 (4.5) 安装到 Bottle 中……