如何访问通过`cargo install`安装的Rust/Cargo项目中包含的资产?

Chr*_*son 13 rust rust-cargo

我有一个包含一些相关资产(Lua脚本)的项目,我需要在运行时找到它.这可能意味着两件事:

  • 在开发期间(例如cargo run),我想找到它相对于源
  • 通过via安装时cargo install,资产也应该安装在某个地方,并且已安装的可执行文件版本应该找到已安装的资产.

我知道使用类似的方法include_str!()将文本文件编译成二进制文件,但在这种情况下我不想这样做.

据我所知,cargo install 目前没有任何支持安装除可执行文件之外的任何东西,这是第一个问题,尽管我不介意有一个包装器安装脚本来帮助.

Nei*_*kos 5

根据您希望它的结构方式,您可以尝试混合使用env::current_dir来获取当前目录,如果没有找到任何内容,您可以尝试使用可执行路径并从那里加载内容。你明白了env::current_exe


我看到了困难,即cargo install 将二进制文件复制到.cargo/bin其中意味着其他资源保留在位于.cargo/registry/src/....

在这种情况下,我同意 @ljedrzinclude!似乎是唯一的方法。