首页 > 解决方案 > Rust 构建脚本将文件复制到目标目录

问题描述

对于我的项目,我想在项目构建时将项目根目录中的文件 config.ron 复制到目标目录。我知道你可以使用 include_str!在编译时将文件的内容添加到程序中,但我希望文件保留在目标文件夹的根目录中,以便无需重新编译程序即可对其进行编辑。

我目前一直在尝试构建脚本来完成此任务,但我没有运气。

use std::process::Command;
use std::env;

fn main() {
    let profile = std::env::var("PROFILE").unwrap();
    match profile.as_str() {
        "debug" => {
            Command::new("cmd")
                .args(&["copy", "/y"])
                .arg(&format!(r#"{}\config.ron"#, env::var("CARGO_MANIFEST_DIR").unwrap()))
                .arg(&format!(r#"{}\target\debug"#, env::var("CARGO_MANIFEST_DIR").unwrap()))
                .status()
                .expect("Copy failed to execute.");
            ()
        },
        "release" => {
            Command::new("cmd")
                .args(&["copy", "/y"])
                .arg(&format!(r#"{}\config.ron"#, env::var("CARGO_MANIFEST_DIR").unwrap()))
                .arg(&format!(r#"{}\target\release"#, env::var("CARGO_MANIFEST_DIR").unwrap()))
                .status()
                .expect("Copy failed to execute.");
            ()
        },
        _ => (),
    }
}

使用构建脚本将此文件复制到目标目录的正确方法是什么?

标签: rustrust-cargo

解决方案


如果您真的想在构建脚本中执行此操作,我会使用这些成分:


推荐阅读