修复pyinstaller打包后,版本信息不对的问题。
This commit is contained in:
@@ -411,23 +411,49 @@ static BOOL UpdateVersionInfoFile(LPCTSTR lpPath, LPCTSTR lpProductVersion, LPCT
|
||||
{
|
||||
const std::string key = "u'FileVersion', u'";
|
||||
auto p = s.find(key);
|
||||
if (p != std::string::npos) {
|
||||
if (p != std::string::npos)
|
||||
{
|
||||
auto pValStart = p + key.size();
|
||||
auto pValEnd = s.find('\'', pValStart);
|
||||
if (pValEnd != std::string::npos)
|
||||
s.replace(pValStart, pValEnd - pValStart, szFileVer);
|
||||
}
|
||||
else
|
||||
{// 可能不带u
|
||||
const std::string key = "'FileVersion', '";
|
||||
auto p = s.find(key);
|
||||
if (p != std::string::npos)
|
||||
{
|
||||
auto pValStart = p + key.size();
|
||||
auto pValEnd = s.find('\'', pValStart);
|
||||
if (pValEnd != std::string::npos)
|
||||
s.replace(pValStart, pValEnd - pValStart, szFileVer);
|
||||
}
|
||||
}
|
||||
}
|
||||
// 更新 ProductVersion 字符串值
|
||||
{
|
||||
const std::string key = "u'ProductVersion', u'";
|
||||
auto p = s.find(key);
|
||||
if (p != std::string::npos) {
|
||||
if (p != std::string::npos)
|
||||
{
|
||||
auto pValStart = p + key.size();
|
||||
auto pValEnd = s.find('\'', pValStart);
|
||||
if (pValEnd != std::string::npos)
|
||||
s.replace(pValStart, pValEnd - pValStart, szProdVer);
|
||||
}
|
||||
else
|
||||
{//可能不带u
|
||||
const std::string key = "'ProductVersion', '";
|
||||
auto p = s.find(key);
|
||||
if (p != std::string::npos)
|
||||
{
|
||||
auto pValStart = p + key.size();
|
||||
auto pValEnd = s.find('\'', pValStart);
|
||||
if (pValEnd != std::string::npos)
|
||||
s.replace(pValStart, pValEnd - pValStart, szProdVer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!myFile.Open(lpPath, CFile::modeCreate | CFile::modeWrite, &fileEx)) return FALSE;
|
||||
@@ -547,7 +573,7 @@ int HandlePyinstallerBuildCommand(int argc, TCHAR* argv[])
|
||||
_tprintf(_T("FileVersion=%s\n"), strFileVersion.GetString());
|
||||
|
||||
CString strCmd;
|
||||
strCmd.Format(_T("cmd /c python -m PyInstaller %s"),strExtraArgs.GetString());
|
||||
strCmd.Format(_T("cmd /c python -m PyInstaller %s"), strExtraArgs.GetString());
|
||||
|
||||
CString strBuildResult = StartProcess(NULL, strCmd.GetBuffer(), lpRepoPath);
|
||||
strCmd.ReleaseBuffer();
|
||||
|
||||
14
README.md
14
README.md
@@ -443,14 +443,14 @@ VSVersionInfo(
|
||||
StringTable(
|
||||
'040904B0', # 语言 0409=英语, 04B0=Unicode
|
||||
[
|
||||
StringStruct('CompanyName', 'MyCompany'),
|
||||
StringStruct('FileDescription', 'MyApp Application'),
|
||||
StringStruct('FileVersion', '5.0.1920.11'),
|
||||
StringStruct('InternalName', 'MyApp'),
|
||||
StringStruct('LegalCopyright', 'Copyright (C) 2026 MyCompany'),
|
||||
StringStruct('CompanyName', 'MyCompany'),
|
||||
StringStruct('FileDescription', 'MyApp Application'),
|
||||
StringStruct('FileVersion', '5.0.1920.11'),
|
||||
StringStruct('InternalName', 'MyApp'),
|
||||
StringStruct('LegalCopyright', 'Copyright (C) 2026 MyCompany'),
|
||||
StringStruct('OriginalFilename', 'MyApp.exe'),
|
||||
StringStruct('ProductName', 'MyApp'),
|
||||
StringStruct('ProductVersion', '5.0.1920.11'),
|
||||
StringStruct('ProductName', 'MyApp'),
|
||||
StringStruct('ProductVersion', '5.0.1920.11'),
|
||||
]
|
||||
)
|
||||
]),
|
||||
|
||||
Reference in New Issue
Block a user