qt - क्यूटी इंस्टॉलर फ्रेमवर्क: ऑटो अपडेट




auto-update qt-installer (2)

मैं वर्तमान में क्यूटी इंस्टॉलर फ्रेमवर्क का उपयोग कर रहा हूं और एक ऑनलाइन रिपॉजिटरी सेट अप करने में कामयाब रहा हूं। मुझे क्या जानना है:

क्या फ्रेमवर्क किसी प्रकार के "ऑटो-अपडेट" तंत्र प्रदान करता है, जैसे एक प्लगइन / सेवा जो प्रोग्राम / सिस्टम शुरू होने पर अपडेट की जांच करती है?
अद्यतनों के लिए जांचें पर्याप्त होंगी, क्योंकि स्थापना खुद ही रखरखाव उपकरण का उपयोग करके किया जा सकता है।

मुझे इस विषय के बारे में पता चल गया था कि यह छोटा वाक्य था:

अंतिम उपयोगकर्ता सर्वर से अधिष्ठापन के बाद अतिरिक्त घटकों को स्थापित करने के लिए, साथ ही सामग्री पर स्वत: अद्यतन प्राप्त करने के लिए अंतिम रूप से अद्यतन सर्वर पर अपडेट प्रकाशित करने के लिए रखरखाव उपकरण का उपयोग कर सकते हैं।

यहां से: http://doc.qt.io/qtinstallerframework/ifw-overview.html#choosing-installer -type

आपकी सहायताके लिए धन्यवाद!

संपादित करें: सुझाव
इस सवाल के स्वीकृत उत्तर के आधार पर मैंने इंस्टॉलर ढांचे का उपयोग करके अद्यतनों की स्वचालित रूप से जांच करने के लिए एक छोटा पुस्तकालय बनाया - https://github.com/Skycoder42/QtAutoUpdater



मैं क्या करता हूँ, QProcess का उपयोग कर रखरखाव उपकरण चलाया जाता है, और उसके बाद आउटपुट की जांच करें। इसमें एक ऐसा मोड है जहां यह GUI नहीं चलाया जाता है, लेकिन यदि उपलब्ध हो तो अद्यतन जानकारी केवल आउटपुट करता है।

ध्यान दें कि जब अनुप्रयोग प्रारंभ होता है तो मैं कार्यशील निर्देशिका को अनुप्रयोग के पथ पर सेट करता हूं, इसलिए मैं सिर्फ maintenancetool चला सकता हूँ

QProcess process;
process.start("maintenancetool --checkupdates");

// Wait until the update tool is finished
process.waitForFinished();

if(process.error() != QProcess::UnknownError)
{
    qDebug() << "Error checking for updates";
    return false;
}

// Read the output
QByteArray data = process.readAllStandardOutput();

// No output means no updates available
// Note that the exit code will also be 1, but we don't use that
// Also note that we should parse the output instead of just checking if it is empty if we want specific update info
if(data.isEmpty())
{
    qDebug() << "No updates available";
    return false;
}

// Call the maintenance tool binary
// Note: we start it detached because this application need to close for the update
QStringList args("--updater");
bool success = QProcess::startDetached("maintenancetool", args);

// Close the application
qApp->closeAllWindows();






qt-installer