2012-03-18 22 views
21

बनाया है, मैं गलती से उस परियोजना को अपग्रेड किए बिना किसी दिए गए प्रोजेक्ट को खोलने के लिए उपयोग करने के लिए स्वचालित रूप से कौन सा डेल्फी संस्करण (मेरे कंप्यूटर पर डेल्फी 5 से XE2 स्थापित) का उपयोग करने का प्रयास कर रहा हूं।मैं डेल्फी संस्करण को कैसे निर्धारित करूं जिसने डेल्फी प्रोजेक्ट

डेल्फी 7 तक प्रत्येक प्रोजेक्ट के लिए .ini प्रारूप में .dof फ़ाइल है। डेल्फी 5 किसी भी प्रविष्टि जो मदद कर सकता है नहीं है, लेकिन डेल्फी 6 से शुरू जो निम्नलिखित मान शामिल एक [FileVersion] अनुभाग है:

  • डेल्फी 5: N/A
  • डेल्फी 6: 6.0
  • डेल्फी 7: 7,0

तो मुझे लगता है कि सुलझेगी कि, के बाद से पुराने डेल्फी संस्करणों मुझे चिंता का विषय नहीं है लगता है। \ BorlandProject \ PersonalityInfo \ विकल्प \ विकल्प

डेल्फी 2005 में

यह इस तरह दिखता है:

<Option Name="Version" Type="String">1.0</Option>

डेल्फी 2005 के लिए और 2006 वहाँ XML प्रारूप में .bdsproj फ़ाइल एक संस्करण प्रविष्टि युक्त

डेल्फी 2006 में इस तरह:

<Option Name="Version">1.0</Option>

तो मैं देख सकता हूं कि "टाइप" विशेषता मौजूद है और डेल्फी 2005 या 2006 पर निर्णय लेने के आधार पर। क्या कोई व्यक्ति अपनी डेल्फी 2005 और 2006 परियोजनाओं पर एक नज़र डालें और इस अंतर को सत्यापित कर सकता है? (या क्या आपको शायद एक बेहतर विचार मिल गया है?)

संपादित करें: मैंने अभी यह सत्यापित करने की कोशिश की और पाया कि डेल्फी 2005 हमेशा टाइप-एट्रिब्यूट नहीं जोड़ता है। तो अब मैं अटक गया हूँ।

संपादित करें: शायद वहां संग्रहीत GUID डेल्फी संस्करण के लिए अद्वितीय है?

  • डेल्फी 2005: {87D03616-A4C7-4B5A-AF0F-0164EA60BC59}
  • डेल्फी 2006: {CFE1BEE6-6FDE-4241-8CA5-D38D14EAA768}

किसी तरह मैं यह शक है, मैं कर रहा हूँ डर है कि GUID विभिन्न एसकेयू (पेशेवर/वास्तुकार इत्यादि) का प्रतिनिधित्व कर सकता है। लेकिन शायद आप इसे सत्यापित कर सकते हैं?

डेल्फी 2007 से शुरू करना एक अलग XML प्रारूप में एक .dproj फ़ाइल है। डेल्फी 2007 प्रारूप किसी भी संस्करण प्रविष्टि मैं मिल सकता है शामिल नहीं है, लेकिन डेल्फी 2009 से पर वहाँ निम्नलिखित प्रविष्टि प्रतीत हो रहा है:

\project\PropertyGroup\ProjectVersion

ये मान मैं अपने .dproj फ़ाइलों में पाया हैं:

  • डेल्फी 2007: एन/ए
  • डेल्फी 2009: 12.0
  • डेल्फी 2010: 12।0
  • डेल्फी XE: 12.3
  • डेल्फी XE2: 13,4

इन सही हैं, तो मैं मज़बूती से डेल्फी 2007, XE और XE2 निर्धारित कर सकते हैं। लेकिन मैं डेल्फी 200 9 और 2010 के बीच अंतर कैसे करूं?

इसके अलावा, ये संख्याएं मेरे लिए अजीब लगती हैं। क्या किसी को पता है कि डेल्फी के विभिन्न अपडेटों के बीच कोई अंतर है या नहीं। क्या मूल डेल्फी एक्सई 2 रिलीज 13.0 के साथ शुरू हो सकता है और प्रत्येक अपडेट के साथ डॉट के बाद संख्या बढ़ जाती है? लेकिन अगर ऐसा है, तो डेल्फी एक्सई को 12.3 कैसे मिले?

(वहाँ एक समान प्रश्न How can I tell what version of Delphi was used to create a project है, लेकिन एकल जवाब वहाँ काफी सीमित है।)

इस की जरूरत है बस किसी और मामले किसी में: मैं बस एक page to the Delphi Wiki जो सभी प्रश्नों के उत्तर को सारांशित और नए संस्करणों के लिए डेल्फी जानकारी जोड़ता है जोड़ लिया है (वर्तमान में डेल्फी 10.1 तक)।

+0

क्यों आप इस की ज़रूरत है? निश्चित रूप से आप जानते हैं कि डेल्फी का कौन सा संस्करण आपकी परियोजनाओं के साथ बनाया गया है। –

+0

@ डेविडहेफरन नीचे मेरा जवाब देखें। – dummzeuch

+0

मैं किसी विशेष प्रोजेक्ट फ़ाइल के लिए लक्ष्य डेल्फी संस्करण को स्पष्ट रूप से पहचानने के लिए एक सरल नामकरण सम्मेलन का पालन करने का सुझाव दूंगा। जैसे हमने अपनी परियोजना फाइलों को उप-फ़ोल्डर में रखा है। तो फ़ोल्डर का नाम डेल्फी संस्करण का उपयोग करने के लिए इंगित करता है। –

उत्तर

5

* प्रोजे फाइलों में संस्करण संख्या रिलीज़ या अपडेट करने के लिए बाध्य नहीं हैं और सभी संस्करण सड़कों पर नहीं आते हैं।

  • डेल्फी XE RTM संस्करण 12.2 इस्तेमाल किया
  • डेल्फी XE अद्यतन # 1 संस्करण का उपयोग करता 12.3
  • डेल्फी XE2 (RTM अद्यतन तक # 4) का उपयोग करता है 13,4
10

मैं अब की तुलना में है डेल्फी 2005 और 2006 की .bdsproj फ़ाइलें और कोई अंतर नहीं है। इसके अलावा, वहाँ डेल्फी 2009 तक बनाया .dproj फ़ाइलों और 2010

बीच कोई अंतर नहीं तो जवाब है:

  • अगर एक .dproj फ़ाइल मौजूद है -> पढ़ \ परियोजना \ PropertyGroup \ ProjectVersion
    • खाली -> डेल्फी 2007
    • 12.0 -> डेल्फी 2009 या 2010
    • 12.2 या 12.3 -> डेल्फी XE1 (उवे शूस्टर के अनुसार)
    • 13.4 -> डेल्फी XE2
  • अगर एक .bdsproj फ़ाइल मौजूद है -> डेल्फी 2005 या 2006
  • अगर एक .dof फ़ाइल मौजूद है -> पढ़ [FileVersion] \ संस्करण
    • खाली -> डेल्फी 5 (या शायद पुराने)
    • 6.0 -> डेल्फी 6
    • 7.0 -> डेल्फी 7

दुर्भाग्य से यह मुझे लिखने के लिए अनुमति नहीं है एक प्रोग्राम जो किसी दिए गए प्रोजेक्ट के लिए स्वचालित रूप से सही डेल्फी संस्करण शुरू करता है।

शायद मैं प्रोग्राम को उपयोगकर्ता से पूछूंगा कि यदि दो संभावनाएं हैं और उसका जवाब एक .ini फ़ाइल में संग्रहीत करता है तो अगली बार प्रोग्राम जानता है कि कौन सा डेल्फी संस्करण शुरू करना है।

बीटीडब्लू: कारण मैं इसे देख रहा था कि मैंने कई बार गल्फी 2007 परियोजनाओं को बाद में डेल्फी संस्करण के साथ खोला है, जिसने इसे अपग्रेड किया है और मुझे इन बदलावों को हाथ से पीछे हटाना पड़ा। यह इतना परेशान हो गया है कि मैं इसे अपने प्रोग्राम को .dpr फ़ाइलों के लिए हैंडलर के रूप में पंजीकृत करके रोकना चाहता था।

+2

यदि आप हाथ से परिवर्तनों को उलट रहे हैं तो आपको संशोधन नियंत्रण –

+1

@ डेविडहेफरन का उपयोग करने की आवश्यकता है: "हाथ से" के साथ मेरा मतलब था कि फ़ाइलों पर क्लिक करना और टोर्टोइज एसवीएन में वापस जाना। यह वास्तव में फ़ाइलों को संपादित करने के रूप में मुश्किल नहीं है लेकिन अभी भी कष्टप्रद है। बीटीडब्ल्यू: मैंने अब परियोजना में एक बैच फ़ाइल जोड़कर समस्या हल कर दी है जो इसे सही विचार में खुलती है। – dummzeuch

+0

यूनिट सर्च पथ इस बारे में एक संकेत प्रदान कर सकता है कि किस संकलक संस्करण के साथ परियोजना जुड़ी हुई थी। – bvj

4

बस XE3 (RTM) स्थापित किया गया। 14.3 एक्सई 3 (सी ++ & डेल्फी)

+1

14.4: एक्सई 4 और 15.1: एक्सई 5 –

+0

15.3: एक्सई 5 (अपडेट 2); और 16.0: एक्सई 7 – Martijn

3

आज मुझे डेल्फी संस्करण (मानक, व्यावसायिक, उद्यम) के बारे में यह विषय गूग्लिन मिलता है।

वैसे भी मैं कुछ .dof मेरा मशीन में फैल फ़ाइलों की जाँच की और वहाँ प्राचीन डेल्फी संस्करणों से संबंधित तथ्यों है:

अगर एक .dof फ़ाइल मौजूद है -> पढ़ [निर्देशिकाएँ]/संकुल

डेल्फी 3

[Directories] 
OutputDir= 
UnitOutputDir= 
SearchPath= 
Packages=VCLX30;VCL30;INETDB30;INET30; 

डेल्फी 5

[Directories] 
OutputDir=. 
UnitOutputDir=. 
PackageDLLOutputDir=. 
PackageDCPOutputDir=. 
SearchPath= 
Packages=Vcl50;Inet50;Inetdb50;Vclx50;Indy50; 

अतिरिक्त जानकारी हो सकता है

डी 3:

[Excluded Packages] 
C:\Program Files\Borland\Delphi 3\Bin\DCLDSS30.dpl=Delphi Decision Cube Components 
C:\PROGRAM FILES\BORLAND\DELPHI 3\BIN\DCLTEE30.DPL=Delphi TeeChart Components 

D5: dof फ़ाइल के अंत के पास finded

[Excluded Packages] 
$(DELPHI)\Bin\CorIde50.bpl=Borland Core IDE Package 
$(DELPHI)\Bin\direct50.bpl=Borland Direct IDE Package