Independent Updater version replaced with product version for correct versioning of DLL and EXE files when updating product

This commit is contained in:
Simon Rozman 2016-10-11 13:13:44 +02:00
parent a9a04f8df3
commit 2ca5b4d9d1
11 changed files with 25 additions and 50 deletions

Binary file not shown.

View File

@ -33,7 +33,7 @@ int CALLBACK WinMain(_In_ HINSTANCE hInstance, _In_ HINSTANCE hPrevInstance, _In
return -1;
// Initialize configuration.
wxConfigBase *cfgPrev = wxConfigBase::Set(new wxConfig(wxT(UPDATER_CFG_APPLICATION) wxT("\\Updater"), wxT(UPDATER_CFG_VENDOR)));
wxConfigBase *cfgPrev = wxConfigBase::Set(new wxConfig(wxT(PRODUCT_CFG_APPLICATION) wxT("\\Updater"), wxT(PRODUCT_CFG_VENDOR)));
if (cfgPrev) wxDELETE(cfgPrev);
// Initialize locale.
@ -52,7 +52,7 @@ int CALLBACK WinMain(_In_ HINSTANCE hInstance, _In_ HINSTANCE hPrevInstance, _In
wxMkdir(path);
// Prepare log file.
wxFFile log_file(path + wxT("Updater-") wxT(UPDATER_CFG_APPLICATION) wxT(".log"), wxT("wt"));
wxFFile log_file(path + wxT("Updater-") wxT(PRODUCT_CFG_APPLICATION) wxT(".log"), wxT("wt"));
if (log_file.IsOpened())
delete wxLog::SetActiveTarget(new wxLogStderr(log_file.fp()));

Binary file not shown.

View File

@ -85,10 +85,10 @@ void UpdaterAddDownloads(wxXmlNode *elPackage, const wxString &platformId, const
void UpdaterAddPackage(wxXmlNode *elPackages, const wxString &platformId, const wxString &languageId, const wxString &url, const wxMemoryBuffer &hash)
{
wxXmlNode *elHex = new wxXmlNode(wxXML_ELEMENT_NODE, wxT("hex"));
elHex->AddChild(new wxXmlNode(wxXML_TEXT_NODE, wxEmptyString, wxString::Format(wxT("%08x"), UPDATER_PRODUCT_VERSION)));
elHex->AddChild(new wxXmlNode(wxXML_TEXT_NODE, wxEmptyString, wxString::Format(wxT("%08x"), PRODUCT_VERSION)));
wxXmlNode *elDesc = new wxXmlNode(wxXML_ELEMENT_NODE, wxT("desc"));
elDesc->AddChild(new wxXmlNode(wxXML_TEXT_NODE, wxEmptyString, wxT(UPDATER_PRODUCT_VERSION_STR)));
elDesc->AddChild(new wxXmlNode(wxXML_TEXT_NODE, wxEmptyString, wxT(PRODUCT_VERSION_STR)));
wxXmlNode *elVersion = new wxXmlNode(wxXML_ELEMENT_NODE, wxT("Version"));
elVersion->AddChild(new wxXmlNode(wxXML_TEXT_NODE, wxEmptyString, wxT("\n\t\t\t")));
@ -201,7 +201,7 @@ int _tmain(int argc, _TCHAR *argv[])
}
}
}
if (version != UPDATER_PRODUCT_VERSION) {
if (version != PRODUCT_VERSION) {
// This package is not our version. Skip.
continue;
}

Binary file not shown.

View File

@ -13,6 +13,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UpdPublish", "UpdPublish\Up
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Updater", "Updater\build\Updater.vcxproj", "{990D8CF9-4457-4DC0-AA18-4968EF434741}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{28F748D5-D691-4F00-9464-37AF062CF91F}"
ProjectSection(SolutionItems) = preProject
..\include\UpdaterCfg.h = ..\include\UpdaterCfg.h
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32

View File

@ -44,10 +44,10 @@ Component ComponentId Directory_ Attributes Condition KeyPath
s$(MSIBUILD_LENGTH_ID) S38 s$(MSIBUILD_LENGTH_ID) i2 S255 S$(MSIBUILD_LENGTH_ID)
Component Component
!IF "$(PLAT)" == "Win32"
compUpdater.dll.Win32 {F4962976-71C3-4200-B736-BC841FEE29C2} $(UPDATER_BIN_DIR) 0 fileUpdater.dll.Win32
compUpdater.dll.Win32 {A2DD60BC-D9D1-4D22-A4BF-C28E007C0765} $(UPDATER_BIN_DIR) 0 fileUpdater.dll.Win32
!ENDIF
!IF "$(PLAT)" == "x64"
compUpdater.dll.x64 {A968C387-EC14-4CAC-8406-F21C9779D3EF} $(UPDATER_BIN_DIR) 256 fileUpdater.dll.x64
compUpdater.dll.x64 {2D45C321-2118-4ECC-975D-40991E0860C8} $(UPDATER_BIN_DIR) 256 fileUpdater.dll.x64
!ENDIF
!IF "$(LANG)" == "ru_RU"
compUpdater.mo.ru_RU {486A9DDF-A43B-4920-BEF9-2907DD8660AD} UPDATERLOCRURUDIR $(MSIBUILD_COMPONENT_ATTRIB_FILE) fileUpdater.mo.ru_RU
@ -91,22 +91,22 @@ s$(MSIBUILD_LENGTH_ID) s$(MSIBUILD_LENGTH_ID) l255 i4 S$(MSIBUILD_LENGTH_ID) S20
File File
!IF "$(PLAT)" == "Win32"
!IF "$(CFG)" == "Release"
fileUpdater.dll.Win32 compUpdater.dll.Win32 UPDATE~2.DLL|Updater10u_vc100.dll 0 0 1536 1
fileUpdater.dll.Win32 compUpdater.dll.Win32 UPDATE~1.DLL|Updater$(UPDATER_VERSION)u_vc100.dll 0 0 1536 1
!ENDIF
!IF "$(CFG)" == "Debug"
fileUpdater.dll.Win32 compUpdater.dll.Win32 UPDATE~4.DLL|Updater10ud_vc100.dll 0 0 1536 1
fileUpdater.dll.Win32 compUpdater.dll.Win32 UPDATE~1.DLL|Updater$(UPDATER_VERSION)ud_vc100.dll 0 0 1536 1
!ENDIF
!ENDIF
!IF "$(PLAT)" == "x64"
!IF "$(CFG)" == "Release"
fileUpdater.dll.x64 compUpdater.dll.x64 UPDATE~6.DLL|Updater10u_vc100_x64.dll 0 0 1536 1
fileUpdater.dll.x64 compUpdater.dll.x64 UPDATE~1.DLL|Updater$(UPDATER_VERSION)u_vc100_x64.dll 0 0 1536 1
!ENDIF
!IF "$(CFG)" == "Debug"
fileUpdater.dll.x64 compUpdater.dll.x64 UPDATE~8.DLL|Updater10ud_vc100_x64.dll 0 0 1536 1
fileUpdater.dll.x64 compUpdater.dll.x64 UPDATE~1.DLL|Updater$(UPDATER_VERSION)ud_vc100_x64.dll 0 0 1536 1
!ENDIF
!ENDIF
!IF "$(LANG)" != "en_US"
fileUpdater.mo.$(LANG) compUpdater.mo.$(LANG) UPDATE~1.MO|Updater10.mo 0 $(MSIBUILD_LANGID) 0 1
fileUpdater.mo.$(LANG) compUpdater.mo.$(LANG) UPDATE~1.MO|Updater$(UPDATER_VERSION).mo 0 $(MSIBUILD_LANGID) 0 1
!ENDIF
<<NOKEEP

View File

@ -1,9 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros">
<UpdaterVersion>10</UpdaterVersion>
</PropertyGroup>
<PropertyGroup Label="UserMacros"/>
<PropertyGroup>
<OutDir>..\..\..\output\$(Platform).$(Configuration)\</OutDir>
</PropertyGroup>

View File

@ -23,34 +23,6 @@
#include "../../../../include/UpdaterCfg.h"
//
// Product version as a single DWORD
// Note: Used for version comparison within C/C++ code.
//
#define UPDATER_VERSION 0x01000000
//
// Product version by components
// Note: Resource Compiler has limited preprocessing capability,
// thus we need to specify major, minor and other version components
// separately.
//
#define UPDATER_VERSION_MAJ 1
#define UPDATER_VERSION_MIN 0
#define UPDATER_VERSION_REV 0
#define UPDATER_VERSION_BUILD 0
//
// Human readable product version and build year for UI
//
#define UPDATER_VERSION_STR "1.0"
#define UPDATER_BUILD_YEAR_STR "2016"
//
// Updater API level
//
#define wxUpdaterVersion "10"
//
// Resource IDs
//

Binary file not shown.

View File

@ -34,7 +34,7 @@ wxUpdCheckThread::wxUpdCheckThread(const wxString &langId, wxEvtHandler *parent)
m_parent(parent),
m_abort(false),
m_langId(langId),
m_config(wxT(UPDATER_CFG_APPLICATION) wxT("\\Updater"), wxT(UPDATER_CFG_VENDOR)),
m_config(wxT(PRODUCT_CFG_APPLICATION) wxT("\\Updater"), wxT(PRODUCT_CFG_VENDOR)),
m_cs(NULL),
m_ck(NULL),
m_version(0),
@ -121,14 +121,14 @@ wxUpdCheckThread::wxResult wxUpdCheckThread::DoCheckForUpdate()
return wxUpdRepoUnavailable;
}
if (m_version <= UPDATER_PRODUCT_VERSION) {
if (m_version <= PRODUCT_VERSION) {
wxLogStatus(_("Update check complete. Your product is up to date."));
return wxUpdUpToDate;
}
}
m_fileName = m_path;
m_fileName += wxT("Updater-") wxT(UPDATER_CFG_APPLICATION) wxT("-");
m_fileName += wxT("Updater-") wxT(PRODUCT_CFG_APPLICATION) wxT("-");
m_fileName += m_versionStr;
m_fileName += wxT(".msi");
@ -154,7 +154,7 @@ wxXmlDocument* wxUpdCheckThread::GetCatalogue()
// Load repository database.
wxHTTP http;
http.SetHeader(wxS("User-Agent"), wxS("Updater/") wxS(UPDATER_VERSION_STR));
http.SetHeader(wxS("User-Agent"), wxS("Updater/") wxS(PRODUCT_VERSION_STR));
if (!lastModified.IsEmpty())
http.SetHeader(wxS("If-Modified-Since"), lastModified);
if (!http.Connect(server, UPDATER_HTTP_PORT)) {
@ -296,7 +296,7 @@ bool wxUpdCheckThread::ParseCatalogue(const wxXmlDocument &doc)
}
}
}
if (version <= UPDATER_PRODUCT_VERSION || version < m_version) {
if (version <= PRODUCT_VERSION || version < m_version) {
// This package is older than currently installed product or the superseeded package found already.
continue;
}
@ -463,7 +463,7 @@ bool wxUpdCheckThread::DownloadUpdatePackage()
const wxString scheme = url.GetScheme();
if (scheme == wxT("http") || scheme == wxT("https")) {
wxHTTP &http = (wxHTTP&)url.GetProtocol();
http.SetHeader(wxS("User-Agent"), wxS("Updater/") wxS(UPDATER_VERSION_STR));
http.SetHeader(wxS("User-Agent"), wxS("Updater/") wxS(PRODUCT_VERSION_STR));
}
}
@ -520,7 +520,7 @@ bool wxUpdCheckThread::LaunchUpdate(WXHWND hParent, bool headless)
// Logging
wxString fileNameLog(m_path);
fileNameLog += wxT("Updater-") wxT(UPDATER_CFG_APPLICATION) wxT("-msiexec.log");
fileNameLog += wxT("Updater-") wxT(PRODUCT_CFG_APPLICATION) wxT("-msiexec.log");
param += wxT(" /l* \"");
param += fileNameLog;