सारांश :संक्षेप में, नीचे बताया गया है:1)
SQL सर्वर को चलाने के लिए कस्टम क्रिया को अक्षम करें setup.exe
आपके वर्तमान एमएसआई में। 2)
एक बुनियादी WiX Burn Bundle
SQLServer को प्रारंभ करने के लिए setup.exe
पहले, और फिर अपने Visual StudioInstaller प्रोजेक्ट-जनरेटेड MSI
. को प्रारंभ करें उसके बाद। या बेहतर अभी तक, पूरे एमएसआई को वाईएक्स में भी बनाएं। उन्नत इंस्टॉलर . जैसे वाणिज्यिक टूल और इंस्टॉलशील्ड व्यवहार्य विकल्प हैं - वे इसके लिए समर्थन प्रदान करते हैं जो अंतर्निहित है (विशेषताएं पूर्वापेक्षा के संस्करण के आधार पर भिन्न होती हैं)।
बंडल-मॉकअप बर्न करें (प्रेरणा, अधिक प्रेरणा):
बस यह दिखाने की कोशिश करने के लिए कि वाईएक्स बर्न मार्कअप कैसे काम करता है:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<Bundle Name="MyCoolTestApp" Version="1.0.0.0"
Manufacturer="Someone" UpgradeCode="PUT-GUID-HERE">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
<util:FileSearch Path="[WindowsFolder]System32\ucrtbase.dll" Variable="VCDISTINSTALLED"/>
<Chain>
<ExePackage SourceFile="vc_redist.x64.exe"
DetectCondition="VCDISTINSTALLED"
InstallCommand="/q /ACTION=Install"
RepairCommand="/q ACTION=Repair /hideconsole" />
<MsiPackage SourceFile="ShortcutDesktop.msi" />
</Chain>
</Bundle>
</Wix>
तकनीकी कारण :मैं विजुअल स्टूडियो इंस्टालर प्रोजेक्ट्स का कोई विशेषज्ञ नहीं हूं - यह कहना होगा - हर बार। हालाँकि, इन परियोजनाओं की कई सीमाएँ और विचित्रताएँ हैं, जैसा कि आपने खोजा है। विचित्रताओं में से एक यह है कि सभी कस्टम क्रियाएं आस्थगित मोड में चलती हैं और सिस्टम संदर्भ में (लोकल सिस्टम के रूप में चल रही हैं) लॉन्चिंग उपयोगकर्ता के प्रतिरूपण के बिना। यह संभावित रूप से देखी गई समस्या का कारण है - जैसा कि आप स्वयं बताते हैं।
यद्यपि वीएस इंस्टालर प्रोजेक्ट्स से प्राप्त एमएसआई को पोस्ट-प्रोसेस करना संभव है, एसक्यूएल सर्वर इंस्टॉल को शुरू करने के लिए कस्टम एक्शन के उपयोग को खत्म करना बेहतर है। अधिक विवरण नीचे। पोस्ट प्रोसेसिंग में कस्टम एक्शन प्रकार को 3078 से 1030 में बदलना शामिल होगा ताकि उपयोगकर्ता प्रतिरूपण सक्षम हो - जिसका अर्थ यह भी है कि कस्टम एक्शन वैसे से ऊंचा नहीं चलता है - और इसलिए केवल तभी सफल हो सकता है जब पूरे एमएसआई को ऊंचा किया गया हो।
नोट :नीचे मैं वाईएक्स के बर्न फीचर (ओपन सोर्स), या समकक्ष, सक्षम वाणिज्यिक उपकरण का उपयोग करने का सुझाव देता हूं। वाईएक्स के बर्न फीचर का उपयोग विजुअल स्टूडियो 2017 इंस्टालर प्रोजेक्ट द्वारा बनाई गई एमएसआई फाइलों, या उस मामले के लिए किसी अन्य टूल द्वारा बनाई गई एमएसआई फाइलों (एक्सई फाइलें भी) के साथ किया जा सकता है। आप बस वीएस2017-जेनरेटेड एमएसआई को वाईएक्स बंडल (या EXE फ़ाइल) में प्लग करें। वाईएक्स स्पष्ट रूप से एमएसआई फाइलें भी बना सकता है (यही वह ढांचा है जिसके लिए ढांचा है)। वाईएक्स त्वरित प्रारंभ लिंक ।
MSI प्रौद्योगिकी क्वर्की :अन्य इंस्टॉलर को MSI कस्टम क्रियाओं से हटाना अच्छा अभ्यास नहीं है। यदि दूसरा इंस्टॉलर एक और एमएसआई है (और न केवल एक गैर-एमएसआई setup.exe), तो तकनीकी सीमाओं (कोई दो एमएसआई InstallExecuteSequences
) के कारण ऐसा विश्वसनीय रूप से करना भी संभव नहीं है। स्थापना के दौरान सेट किए गए म्यूटेक्स के कारण एक ही समय में चल सकता है)। दूसरे शब्दों में:समवर्ती MSI संस्थापन निषिद्ध और तकनीकी रूप से असंभव है।
जला :वाईएक्स की बर्न सुविधा दर्ज करें - downloader
/ bootstrapper
/ sequencer
टूल जो अपने स्वयं के रैपर से क्रम में पैकेज इंस्टॉलेशन चलाता है setup.exe
. यह MSI फ़ाइलें, EXE फ़ाइलें, और अन्य प्रकार के पैकेज स्थापित कर सकता है - एक के बाद एक MSI के म्यूटेक्स जैसी तकनीकी सीमाओं के बिना। सीरियल, समानांतर नहीं चल रहा है।
एसक्यूएल सर्वर स्थापित करें :आप ऐसे बर्न बंडल के माध्यम से SQL सर्वर EXE इंस्टॉलर को किक कर सकते हैं, और आप प्रबंधित कोड में ऐसा करने के बजाय कमांड लाइन पैरामीटर के रूप में सूचीबद्ध पैरामीटर निर्दिष्ट कर सकते हैं (रनटाइम आवश्यकताओं के साथ)। फिर आप अपने मुख्य एमएसआई को बाद में उसी बंडल से शुरू करते हैं।
क्रैश कोर्स बर्न करें :बर्न के लिए सीखने की अवस्था है। यह "फिडली" है (यह कोड / मार्कअप है - हमेशा फिडली), लेकिन यह बहुत लचीला है। मैं उस उन्नत इंस्टॉलर को जोड़ना चाहता हूं ऐसा लगता है कि SQL सर्वर परिनियोजन के लिए अच्छा समर्थन है, भले ही कभी भी विस्तार से ठीक से जांच करने का समय न हो। इंस्टॉलशील्ड अपने सूट प्रोजेक्ट्स . का उपयोग करके क्रम में EXE फ़ाइलें और MSI फ़ाइलें स्थापित कर सकते हैं सुविधा (लिंक किए गए स्क्रीन शॉट की जाँच करें)। संपूर्ण SQL सर्वर समर्थन के बारे में सुनिश्चित नहीं हैं।
कुछ बर्न सैंपल लिंक :
- बूटस्ट्रैपिंग
- कैसे करें:बर्न का उपयोग करके .NET फ्रेमवर्क स्थापित करें
- बर्न क्या कर सकता है इसका एक अच्छा नमूना:https://github.com/frederiksen/Classic-WiX-Burn-Theme।
- मेरा अपना "हैलो वर्ल्ड" -स्टाइल बर्न बंडल मार्कअप (आगे के लिंक के साथ)।
- नील स्लीथहोम:http://neilsleightholm.blogspot.com/2012/05/wix-burn-tipstrics.html
- बर्न आपको अपना स्वयं का सेटअप GUI एप्लिकेशन (उन्नत) लिखने की अनुमति देता है:https://github.com/rstropek/Samples/tree/master/WiXSamples/CustomBurnUI (एक स्तर तक अधिक नमूने)
कुछ लिंक :
- Wix Burn:बूटस्ट्रैपर को खुद को इंस्टाल होने से कैसे रोकें
- Wix Burn helloworld उदाहरण
- वाईएक्स में बर्न/बूटस्ट्रैपर के लिए कमांड लाइन फ़्लैग/विकल्पों की व्यापक सूची
- Wix Burn - कस्टम टेम्प्लेट
बर्न बंडल चेन में भाषा परिवर्तन .mst's जोड़ना?(बहुत अधिक लिंक)