7 个稳定版本
1.4.0 | 2023年6月21日 |
---|---|
1.3.1 | 2022年8月7日 |
1.3.0 | 2022年5月1日 |
1.2.1 | 2022年4月18日 |
1.0.0 | 2021年12月18日 |
在 构建工具 中排名 #127
每月下载量:1,988
用于 2 crates
73KB
1K SLoC
Rust 的 Windows Manifest 嵌入
embed-manifest
crate 提供了一种简单的方法来在可执行文件中嵌入 Windows manifest,无论构建环境如何,无需依赖来自 LLVM 或 MinGW 的外部工具。
如果您需要嵌入的不仅仅是 manifest,您可能发现 winres 或 embed-resource crate 更合适。尽管它们有额外的依赖和设置要求,可能会使它们的使用稍微复杂一些。
为什么要使用它?
Rust 编译器不会将 manifest 添加到 Windows 可执行文件中,这意味着它将运行一些兼容性选项和设置,使程序看起来像在较旧的 Windows 版本上运行。通过使用此 crate 添加应用程序 manifest,即使交叉编译
- 具有类似于安装程序的名称的 32 位程序不会尝试以管理员身份运行。
- 32 位程序不会显示虚拟化的文件系统和注册表视图。
- 许多非 Unicode API 接受 UTF-8 字符串,与 Rust 使用的一致。
- 程序看到的是真实的 Windows 版本,而不是 Windows Vista。
- 内置的消息框和其他 UI 元素可以在高 DPI 显示器上显示而不模糊。
- 其他功能,如 API 中的长路径名,也可以启用。
用法
要嵌入默认的 manifest,请将以下代码包含在 build.rs
构建脚本中
use embed_manifest::{embed_manifest, new_manifest};
fn main() {
if std::env::var_os("CARGO_CFG_WINDOWS").is_some() {
embed_manifest(new_manifest("Contoso.Sample"))
.expect("unable to embed manifest file");
}
println!("cargo:rerun-if-changed=build.rs");
}
有关如何自定义嵌入的 manifest 的信息,请参阅 crate 文档
许可证
为了避免怀疑,尽管此 crate 本身是根据 MIT 许可证向您授予的,但这不会影响您自己代码的版权状态和许可,当它从 Cargo 构建脚本中使用时。