コマンドラインであり、PE実行可能ファイルのリソースからのバージョン情報の取得をサポートし、バイナリに新しいバージョンのパッチを適用するツールが必要です。私がする必要があるのは、PEバイナリのバージョンの増分を自動化することです。
何か案は?
コマンドラインであり、PE実行可能ファイルのリソースからのバージョン情報の取得をサポートし、バイナリに新しいバージョンのパッチを適用するツールが必要です。私がする必要があるのは、PEバイナリのバージョンの増分を自動化することです。
何か案は?
COM インターフェイスを備えたResource Tools ライブラリ [ 1、2 ]。VBScript/JScript から使用して、私が既に行っているように、バージョン情報のパッチ適用を自動化できます。
DLL タイプ ライブラリをインポート/参照して、COM インターフェイスの構文を確認します。以下は、VersionInfo パッチ適用を自動化するためのコード スニペットです。
WshShell = WScript.CreateObject("WScript.Shell");
WScript.Echo("Current Directory: " + WshShell.CurrentDirectory);
Image = new ActiveXObject("AlaxInfo.ResourceTools.Image");
Image.Initialize(WshShell.CurrentDirectory + "\\Sample.dll");
WScript.Echo("Product Version: " + Image.VersionInfo.ProductVersionString);
WScript.Echo("File Version: " + Image.VersionInfo.FileVersionString);
VersionString = Image.VersionInfo.FileVersionString;
VersionString = VersionString.replace(" ", "");
VersionString = VersionString.replace(",", ".");
if(/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/i.exec(VersionString) == null)
throw "Incorrect version string";
V1 = new Number(RegExp.$1);
V2 = new Number(RegExp.$2);
V3 = new Number(RegExp.$3);
V4 = new Number(RegExp.$4);
WScript.Echo("File Version Components: " + V1 + ", " + V2 + ", " + V3 + ", " + V4);
V4++;
VersionString = V1 + "." + V2 + "." + V3 + "." + V4;
WScript.Echo("New File Version: " + VersionString);
Image.VersionInfo.SetFileVersion(V1 * 65536 + V2, V3 * 65536 + V4);
Image.VersionInfo.SetString(0, "FileVersion", VersionString);
Image.VersionInfo.Update();
Image.EndUpdate(false);
ライブラリは基本的にBeginUpdateResource
関数とその仲間のラッパーであり、数値だけでなく他のバージョン情報コンポーネント、文字列、ビットマップにパッチを適用するための自動化インターフェイスを提供します。