Windows相当于带有内容目录的MacOS.app

时间:2013-12-03 21:45:56

标签: windows executable pyinstaller

这听起来好像我只是在寻找.exe文件,但我并不熟悉windows。我一直在使用pyinstaller将我的应用变成二进制文件。我的应用依赖于很多数据目录和第三方二进制文件,我将其打包在与可执行二进制文件相同的目录中。对于Mac,这使事情变得简单,因为用户只需单击应用程序目录中的MyApp.app,就像链接到MyApp.app/Contents/MacOs/MyApp。这样,MyApp永远不会被触及,并且与数据目录捆绑在一起(也在MyApp.app/Contents/MacOs /)中加载。

然而,我真的找不到相当于windows的东西。虽然Pyinstaller可以创建一个包含我的数据目录和可执行文件的目录,但是如果用户在目录中移动.exe文件,那么应用程序将永远不会工作(因为它丢失了它对数据目录的相对位置)。是否有这样的东西可以像MacOS一样打包这个目录,所以用户只需要点击链接到其中打包的目录中的.exe文件的单个.exe文件?这样我们就可以传递一个目录。像Mac.app一样?

1 个答案:

答案 0 :(得分:0)

Win32应用程序将可执行文件中的数据存储为 resources ,它允许使用单个文件解决方案,但是使用普通文件API无法访问它们,还有一组单独的资源处理函数。 (这意味着资源对于绝对必须是文件的东西来说并不是那么有用,比如帮助程序可执行文件的图像。)

Win32也有alternate data streams,它与您习惯使用的.app包更相似,通过$DATA:将本地标识符与实际文件名分开。但那些只能在NTFS上工作,被许多文件管理应用程序迷失,从未如此受欢迎,现在微软已经有效地弃用了(通过阻止从Windows应用商店应用访问)。