我有一个项目,其中包含一些相关 Assets (Lua 脚本),我需要在运行时找到这些 Assets 。这可能意味着两件事:
- 在开发过程中(例如
cargo run
),我想找到它相对于源 - 当通过
cargo install
安装时, Assets 也应该安装在某个地方,并且可执行文件的安装版本应该找到安装的 Assets 。
我知道可以使用类似 include_str!()
的选项将文本文件编译成二进制文件,但在这种情况下我不想这样做。
据我所知,cargo install
doesn't have any support for installing anything other than the executable at the moment ,这是第一个问题,尽管我不介意使用包装器安装脚本来提供帮助。
最佳答案
根据您想要的结构,您可以尝试混合使用 env::current_dir
获取当前目录,如果找不到任何内容,您可以尝试使用可执行路径并从那里加载内容。你用 env::current_exe
得到它.
我看到了困难,即 cargo install
仅 将二进制文件复制到 .cargo/bin
中,这意味着额外的资源保留在源文件夹位于 .cargo/registry/src/...
。
在这种情况下,我 agree with @ljedrz那include!
似乎是唯一的方法。
关于rust - 如何访问通过 `cargo install` 安装的 Rust/Cargo 项目中包含的 Assets ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39888534/