2026-04-08 09:07:49 +08:00
|
|
|
|
use winres::WindowsResource;
|
|
|
|
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
|
|
// 仅在 Windows 上处理资源文件
|
|
|
|
|
|
#[cfg(windows)]
|
|
|
|
|
|
{
|
|
|
|
|
|
let mut res = WindowsResource::new();
|
|
|
|
|
|
|
|
|
|
|
|
// 编码方式:高32位 = (major << 16 | minor),低32位 = (patch << 16 | build)
|
2026-04-28 17:03:01 +08:00
|
|
|
|
// 1.0.0.0 => major=1, minor=0, patch=0, build=0 => 0x0001_0000_0000_0000
|
2026-04-08 09:07:49 +08:00
|
|
|
|
res.set_version_info(winres::VersionInfo::FILEVERSION, 0x0001_0000_0000_0000);
|
|
|
|
|
|
res.set_version_info(winres::VersionInfo::PRODUCTVERSION, 0x0001_0000_0000_0000);
|
|
|
|
|
|
|
2026-04-28 17:03:01 +08:00
|
|
|
|
// 关键:显式设置字符串版本字段,与二进制版本保持一致
|
|
|
|
|
|
// 不设置的话,PowerShell/.NET/Explorer 可能从不同字段读取,导致不一致
|
|
|
|
|
|
res.set("FileVersion", "1.0.0.1");
|
|
|
|
|
|
res.set("ProductVersion", "1.0.0.1");
|
|
|
|
|
|
|
2026-04-08 09:07:49 +08:00
|
|
|
|
// 设置产品名和公司名
|
|
|
|
|
|
res.set("ProductName", "BootLoader");
|
|
|
|
|
|
res.set("CompanyName", "JoyD");
|
2026-04-28 17:03:01 +08:00
|
|
|
|
res.set("FileDescription", "应用程序启动器");
|
2026-04-08 09:07:49 +08:00
|
|
|
|
res.set("LegalCopyright", "Copyright JoyD");
|
|
|
|
|
|
|
|
|
|
|
|
if let Err(e) = res.compile() {
|
|
|
|
|
|
eprintln!("Failed to compile resource file: {}", e);
|
|
|
|
|
|
std::process::exit(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
println!("cargo:rerun-if-changed=build.rs");
|
|
|
|
|
|
}
|