[win] updatesvc: debug msi package launch

This commit is contained in:
SimplestStudio
2024-09-07 09:39:08 +03:00
parent ccb93d02b4
commit aa10fe7cc1
2 changed files with 11 additions and 4 deletions

View File

@ -906,13 +906,20 @@ void CSvcManager::startInstallPackage(const tstring &advArgs)
NS_Logger::WriteLog(_TR("Update cancelled. The file signature is missing:") + _T(" ") + m_packageData->fileName, true);
return;
}
tstring args = m_packageData->packageArgs;
tstring args;
if (m_packageData->fileType == _T("msi")) {
args = _T("/i \"") + NS_File::toNativeSeparators(m_packageData->fileName) + _T("\"");
if (!m_packageData->packageArgs.empty())
args += _T(" ") + m_packageData->packageArgs;
} else {
args = m_packageData->packageArgs;
}
if (!advArgs.empty()) {
if (!args.empty())
args += _T(" ");
args += advArgs;
}
if (!NS_File::runProcess(m_packageData->fileName, args))
if (!NS_File::runProcess(m_packageData->fileType == _T("msi") ? _T("msiexec.exe") : m_packageData->fileName, args))
NS_Logger::WriteLog(_TR("An error occurred while start install updates!"), true);
}
#endif

View File

@ -301,7 +301,7 @@ namespace NS_File
si.cb = sizeof(STARTUPINFO);
PROCESS_INFORMATION pi;
ZeroMemory(&pi, sizeof(pi));
if (CreateProcess(fileName.c_str(), &_args[0],
if (CreateProcess(NULL, &_args[0],
NULL, NULL, FALSE, CREATE_UNICODE_ENVIRONMENT,
NULL, NULL, &si, &pi))
{
@ -340,7 +340,7 @@ namespace NS_File
si.cb = sizeof(STARTUPINFO);
si.lpDesktop = const_cast<LPWSTR>(L"Winsta0\\Default");
PROCESS_INFORMATION pi;
if (CreateProcessAsUser(hTokenDup, fileName.c_str(),
if (CreateProcessAsUser(hTokenDup, NULL,
&_args[0],
NULL, NULL, FALSE,
CREATE_UNICODE_ENVIRONMENT,