我正在尝试创建一个独立的.exe打包的Ruby Shoes应用程序,它动态地使用图像,这意味着在.exe文件的文件夹中找到了哪些图像。
Shoes.app() {
background "bg.jpg"
}
如果图像在打包.exe时位于同一文件夹中,并且图像似乎打包到.exe中,则此代码可以正常工作,因为在运行时显示的.exe文件所在的文件夹中不需要它exe。但是,如果您希望它将文件加载到与.exe相同的文件夹中,将应用程序打包而不显示图像,则不显示。我已经尝试了不同的方法来查找启动.exe的当前目录的绝对路径,但它们似乎都指向AppData下的某个临时目录而不是.exe文件所在的位置。
答案 0 :(得分:0)
调用 pwd 可以获得您想要的内容
不,对不起,现在就来吧!:-)
鞋子正在打开你的exe /害羞到AppData / temp所以工作目录和 __ FILE __ 都指向那里!
一段时间以前,有人提出过:Trying to access the "current dir" in a packaged Shoes app
一定是更好的方式!
修改强>:
你可能想要自定义打包器(检查"我想要高级安装选项" )
检查"在用户目录中展开害羞"
按照常规包装的方式进行操作
现在启动exe时,它会要求您(或用户)选择安装应用程序的位置,继续,记下目录。
现在,在启动已安装的应用程序之前,请使用您的资源提供所需的目录,您应该没问题
一些参考文献:https://github.com/Shoes3/shoes3/wiki/Custom-Install-Scripts
(还有更多内容)
https://github.com/Shoes3/shoes3/issues/247#issuecomment-213919829
答案 1 :(得分:0)
编辑:我的第一个答案是不完整的。在包装应用程序的鞋子中,Windows有点奇怪。写一点测试脚本。
Shoes.app do
stack do
para "DIR: #{DIR}"
para "LIB_DIR: #{LIB_DIR}"
cdir = Dir.getwd
para "CWD: #{cdir}"
end
end
Dir.getwd可能就是你想要的。