inno setup - मैं अपने एप्लिकेशन संस्करण के अनुसार अपने इनो सेटअप इंस्टॉलर का संस्करण स्वचालित रूप से कैसे सेट करूं?




inno-setup (3)

मैं अपने आवेदन के इंस्टॉलर उत्पन्न करने के लिए इनो सेटअप का उपयोग कर रहा हूं। Inno द्वारा उत्पन्न setup.exe ( VersionInfoVersion ) का संस्करण संख्या स्वचालित रूप से मेरे एप्लिकेशन के संस्करण संख्या के साथ मिलान करने के लिए कैसे सेट कर सकता है? अब हर बार जब मैं अपने आवेदन का एक नया संस्करण तैनात करता हूं तो मुझे मैन्युअल रूप से संस्करण संख्या को अपडेट करने की आवश्यकता होती है।

अब मैं यह कर रहा हूँ:

[Setup]
VersionInfoVersion=1.2.2.0 //writting the value manually

मुझे ऐसा कुछ चाहिए:

[Setup]
VersionInfoVersion={Get the version of my app}

आप इस तरह इनो सेटअप प्रीप्रोसेसर GetFileVersion फ़ंक्शन का उपयोग कर सकते हैं

#define ApplicationName 'Application Name'
#define ApplicationVersion GetFileVersion('Application.exe')
[Setup]
AppName={#ApplicationName}
AppVerName={#ApplicationName} {#ApplicationVersion}
VersionInfoVersion={#ApplicationVersion}

मुझे इसे काम करने में कुछ समस्याएं थीं, इसलिए बस मेरा समाधान योगदान देना।

app.iss:

[Setup]
#include "Config.txt"

#define AppVersion GetFileVersion("Input\" + AppExec)


AppName={#AppName}
AppVersion={#AppVersion}

config.txt:

#define AppName "App"
#define AppExec "App.exe"

कमांड लाइन तर्क का उपयोग करके इसे करने का एक और तरीका:

[Setup]           
AppVersion={#MyAppVersion}

और आप अपनी स्क्रिप्ट को cmd से अनुसरण के रूप में कॉल करते हैं:

cd C:\Program Files (x86)\Inno Setup 5

iscc /dMyAppVersion="10.0.0.1" "C:\MyPath\MyScript.iss"

यह #define MyAppVersion="10.0.0.1" स्क्रिप्ट में #define MyAppVersion="10.0.0.1" अनुकरण करता है।

यदि आप CakeBuild का उपयोग कर रहे हैं, तो आप इस तर्क को पास कर सकते हैं

 string CurrentVersion  = "10.0.0.1";
 InnoSetupSettings settings = new InnoSetupSettings();
 settings.Defines=   new Dictionary<string, string>
            {
            { "MyAppVersion", CurrentVersion },
            };
   InnoSetup("C:\MyPath\MyScript.iss", settings);