2008-09-30 7 views
5

this प्रश्न के उत्तर के अनुसार, मैं अपनी .msi फ़ाइल में फ़ाइल संस्करण एम्बेड नहीं कर सकता।एक एम्बेडेड फ़ाइल संस्करण के साथ एक स्वयं निकालने निष्पादन योग्य बनाने के लिए एक अच्छी मुफ्त उपयोगिता क्या है?

इंस्टॉलर जो मैं क्लाइंट देता हूं उसे फ़ाइल संस्करण होना चाहिए।

तो, मैं जो करना चाहता हूं वह एक स्वयं निकालने वाला निष्पादन योग्य है जिसमें एमएसआई फ़ाइल और विजुअल स्टूडियो द्वारा बनाई गई setup.exe शामिल है, और फ़ाइल संस्करण को इसके स्वयं निकालने वाले निष्पादन योग्य पर डाल दें।

इसलिए, मुझे स्वयं निकालने वाले निष्पादन योग्य बनाने के लिए उपयोगिता की आवश्यकता है जो इसके आउटपुट में फ़ाइल संस्करण को एम्बेड करने का समर्थन करता है। इसे निष्कर्षण के बाद स्वचालित रूप से फ़ाइल चलाने का समर्थन करने की आवश्यकता है, इसलिए मैं स्वचालित इंस्टॉलर को स्वचालित रूप से प्रारंभ कर सकता हूं। यह अच्छा होगा अगर यह पटकथा योग्य था।

मुझे लगता है कि this था, जो बहुत अच्छा लग रहा था, लेकिन मैं एक मुफ्त विकल्प पसंद करूंगा।

क्या किसी के पास कोई सुझाव है?

संपादित करें: स्पष्टीकरण के लिए, मैं वास्तव में इंस्टॉलर बनाने की तलाश नहीं कर रहा हूं - मेरे पास पहले से ही एक वीएस सेटअप प्रोजेक्ट है। मैं सिर्फ एक आत्म-निकालने वाला चाहता हूं (जैसे WinZip बना सकता है)। तो, सेटअप-ब्लॉर्गबीर्ड 2008.exe पर उपयोगकर्ता मकान, "संस्करण: 1.0.0.0" देखता है। उपयोगकर्ता इसे डबलक्लिक करता है, यह चुपचाप setup.exe और setup.msi को अस्थायी फ़ोल्डर में निकाल देता है, फिर setup.exe चलाता है। उपयोगकर्ता तब सामान्य इंस्टॉलर स्क्रीन देखता है और सामान्य के रूप में आयता है।

एक और संपादित करें: हाँ, मुझे अब एक स्व-निकालने की आवश्यकता नहीं है, क्योंकि मेरे अन्य प्रश्न का उत्तर अब दिया गया है। यह इस पूरे सवाल को बहुत अधिक अप्रासंगिक बनाता है। यह अभी भी setup.exe और setup.msi के बजाय केवल एक फ़ाइल वितरित करने में सक्षम होने के लिए अच्छा होगा।

+1

मुझे यकीन है कि आपको Setup.exe की आवश्यकता नहीं है ... मैं आमतौर पर इसे हटा देता हूं और एमएसआई को स्वयं वितरित करता हूं। :-) –

+1

मुझे लगता है कि setup.exe विंडोज इंस्टालर और ऐसे के लिए जांचता है .. शायद मैं गलत हूं। – Blorgbeard

उत्तर

4

एनएसआईएस ऐसा कर सकता है।

हमारे निर्माण पर्यावरण का हिस्सा एक ऐसी स्क्रिप्ट है जो हमारे एनएसआईएस स्क्रिप्ट स्रोतों को "हेडर" फ़ाइल में संस्करण जानकारी आउटपुट करती है। आपको अपनी संस्करण जानकारी एम्बेड करने के समान कुछ उपयोग करने में सक्षम होना चाहिए और निष्कर्षण के बाद फ़ाइल को चलाने के लिए आप निश्चित रूप से एनएसआईएस प्राप्त कर सकते हैं।

वास्तव में, जैसा कि एनएसआईएस इंस्टॉलर पैकेज बनाता है ... आप अपने दृष्टिकोण को एक बड़ा सौदा सरल बनाने में सक्षम हो सकते हैं।

1

inno-setup

अपने द्विआधारी संस्करण संख्या, जैसे करने के लिए VersionInfoVersion निर्देश सेट की कोशिश

पॉप-अप संस्करण की जानकारी: http://screencast.com/t/LVqvLfxCj3g

VersionInfoVersion = 1.1.0.0 

इस माउसओवर पाठ में दिखाई देगा और गुण

1

nsis एक अच्छा विकल्प का कार्य प्रगति पर

1

प्रयोग यहाँ की तरह दिखता है विजुअल स्टूडियो असेंबली से जानकारी: http://screencast.com/t/fqunlMNh13

सादे पुरानी एमएसआई फ़ाइल के साथ स्थापित किया गया।

"संस्करण: 1.5.0" जोड़ कर में विवरण सेटअप परियोजना की संपत्ति पाठ, संस्करण संख्या भी पता चलता है एमएसआई तो जैसे फाइल पर:, http://screencast.com/t/A499i6jS

मैं आम तौर पर सिर्फ MSI फ़ाइल का नाम बदलें अपने उद्देश्यों के लिए DataMonkey_1_5_0.msi की तरह।

2

जब आप विंडोज एसडीके डाउनलोड करते हैं, तो MSIStuff.exe और Setup.exe है जिसके लिए एमएस संकलित करने के लिए स्रोत कोड प्रदान करता है। एमएसआईएसटीफ एमएसआई "सामान" करेगा जो आप इसे सेटअप में देते हैं।प्रोग्राम फ़ाइल। Setup.exe को तब वितरित किया जा सकता है। http://support.microsoft.com/kb/888473

विपक्ष पर

अधिक जानकारी:

  • आप हर बार अपने उत्पाद (MSI) का एक नया संस्करण है अपने उत्पाद की संस्करण के साथ Setup.exe पुन: संयोजित करना होगा।
  • यह सुनिश्चित नहीं है कि Setup.exe स्रोत को किस लाइसेंस के तहत वितरित किया गया है।
+0

क्या किसी ने इसे एमएसबिल्ड परिदृश्य या एनएएनटी बिल्ड परिदृश्य के साथ एकीकृत किया है? यह एक अच्छा सौदा है, लेकिन अगर इसे निर्माण प्रक्रिया के हिस्से के रूप में नहीं रखा जा सकता है, तो यह केवल "अच्छा" है, लेकिन सहायक नहीं है। –

+0

यदि आपके पास Setup.exe तैयार है, तो MSIStuff.exe आदेश आसानी से MSEuild के साथ का उपयोग करके आसानी से उपयोग किया जा सकता है। क्या मैंने आपको गलत समझा? – Vivek

2

मैं वास्तव में इस विशेष रिलीज के लिए एनएसआईएस का उपयोग कर समाप्त हुआ, क्योंकि मुझे कुछ अन्य इंस्टॉलरों को बंडल करने की आवश्यकता थी।

संदर्भ के लिए, स्क्रिप्ट मैं प्रयोग किया जाता है:

VIProductVersion    "1.0.0.0" ; set version here 
VIAddVersionKey "FileVersion" "1.0.0.0" ; and here! 
VIAddVersionKey "CompanyName" "MyCompany" 
VIAddVersionKey "LegalCopyright" "© MyCompany" 
VIAddVersionKey "FileDescription" "Installer for MyProgram" 
OutFile MyProgram-Setup.exe 

SilentInstall silent 

Section Main  
    SetOutPath $TEMP 
    SetOverwrite on 
    File SharedManagementObjects.msi 
    File SQLSysClrTypes.msi 
    File Release\Setup.exe 
    File Release\Setup.msi 
    ExecWait 'msiexec /passive /i "$OUTDIR\SharedManagementObjects.msi"' 
    ExecWait 'msiexec /passive /i "$OUTDIR\SQLSysClrTypes.msi"' 
    Exec  '"$OUTDIR\Setup.exe"' 
SectionEnd 
10

लिटिल बिट हैरान कर दिया है कि यह यहाँ अभी तक सूचीबद्ध नहीं है: IExpress विंडोज के साथ आ रहा है एक सरल उपकरण है और आत्म निकालने संस्थापक बनाने के लिए इस्तेमाल किया जा सकता है।

+3

वाह, मुझे इस उपकरण के अस्तित्व के बारे में पता नहीं था। प्रारंभ करें -> रन -> iexpress, जो इसे देखना चाहते हैं। – Blorgbeard

+0

मैं उपकरण अस्तित्व को जानता था, लेकिन बूटस्ट्रैपर के साथ कुछ समस्याएं थीं जो VS.Net 2008 के साथ आती हैं जिन्हें आपको आसपास काम करना पड़ता था। मुझे याद किए गए स्क्रिप्ट किए गए फॉर्म में नहीं किया जा सका, दुर्भाग्यवश दुर्भाग्य से इसका बहुत कम मूल्य था। –

+0

@ रिचर्ड बी: इस समस्या को समाधान के लिए देखें (यानी वर्कअराउंड): http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/3731985c-d9cc-4403-ab7d-992a0971f686 –

2

DotNetZip एक स्व-निकालने वाला संग्रह उत्पन्न कर सकता है, जिसमें एक संस्करण संख्या शामिल है जो विंडोज एक्सप्लोरर माउसओवर में दिखाई देती है। एसएफएक्स में एक उत्पाद का नाम, विवरण, उत्पाद संस्करण और कॉपीराइट भी शामिल है जो विंडोज एक्सप्लोरर में गुण/विवरण दृश्य में दिखाई देता है।

एसएफएक्स एक आदेश चला सकता है जिसे आप निकालने के बाद निर्दिष्ट करते हैं।

SFX का सृजन powershell से पटकथा किया जा सकता है, या आप इसे करने के लिए एक कार्यक्रम लिख सकते हैं, VB.NET, सी #, VBScript या JavaScript, आदि का उपयोग कर

संस्करण संख्या सामान पाने के लिए, आप की जरूरत DotNetZip के कम से कम v1.9.0.26।

0

एक DotNetZip स्वयं निकालने का उपयोग कर FYI समझ में नहीं आता है अगर आप बूटस्ट्रैप setup.exe का उपयोग कर रहे हैं तो .NET स्थापित है (DotNetZip स्वयं निकालने वाले .NET 2.0 की आवश्यकता है)।

संबंधित मुद्दे