2009-08-16 15 views
5

मैं WIX के लिए बिल्कुल नया हूं। मेरे साथ सहन करो।WIX इंस्टॉलर: एक पूर्व शर्त के रूप में पीओएस जोड़ना

मैं अपने इंस्टालर के साथ Microsoft POS (Point of service) स्थापित करने के लिए, .net fx, एसक्यूएल सर्वर कॉम्पैक्ट संस्करण, आदि

मैं संस्थापक (वेब ​​से इसे पाने के लिए कोई जरूरत नहीं) के साथ डाउनलोड की exe की आपूर्ति के लिए तैयार हूँ स्थापित करने के बाद इच्छा ।

मुझे यह link मिला है। लिंक में आलेख इंगित करता है कि आपको कुछ पैरामीटर के साथ सेटअप कॉल करने की आवश्यकता है। लेकिन मुझे कोई संकेत नहीं मिला कि यह विक्स वार कैसे करें। दूसरा मुझे यकीन नहीं है कि यह भी सही तरीका है। (शायद एक मर्ज मॉड्यूल की आवश्यकता है?)

कोई भी जानता है?

धन्यवाद एरियल

उत्तर

4

Wix MSI फ़ाइलें पैदा करता है, और आप एक MSI के अंदर से एक सेटअप प्रोग्राम शुरू नहीं कर सकते हैं। यदि आपको पीओएस के लिए मर्ज मॉड्यूल मिलता है तो आप इसे अपने विक्स में शामिल कर सकते हैं। अन्यथा आपको पहले पीओएस स्थापित करने के लिए बूटस्ट्रैपर का उपयोग करना होगा और फिर अपना एमएसआई लॉन्च करना होगा (जैसे DotNetInstaller)।

+0

हां, यह एक एमएसआई बनाता है - लेकिन आप अभी भी बाहरी अनुप्रयोगों को कॉल कर सकते हैं, यहां तक ​​कि वे केवल EXE हैं। अनुमोदित, एक मर्ज मॉड्यूल जाने का पसंदीदा तरीका होगा, लेकिन अगर केवल एक EXE उपलब्ध है, तो इसे कस्टम एक्शन के माध्यम से भी कहा जा सकता है! –

+2

नहीं यदि वह EXE वास्तव में एक बूटस्ट्रैपर है जो बदले में एक एमएसआई का आह्वान करेगा। मेरी समझ यह थी कि पीओएस इंस्टॉलर वास्तव में बूटस्ट्रैपर था ... लेकिन, मैं गलत हो सकता था। – Nestor

+0

आह हाँ - अच्छा बिंदु। यदि पीओएस इंस्टॉल वास्तव में एक एमएसआई है, तो आपको डॉटनेट इन्स्टॉलर लिंक के लिए मर्ज मॉड्यूल –

0

यदि आप मर्ज मॉड्यूल नहीं प्राप्त कर सकते हैं (यदि आइटम प्रकाशक द्वारा उपलब्ध कराया गया है तो पसंदीदा समाधान होगा), तो आप स्थापना के साथ एक EXE शामिल कर सकते हैं और फिर इसे अपने WiX इंस्टॉल के दौरान निष्पादित कर सकते हैं कस्टम कार्रवाई

ट्रामोंटाना पर excellent tutorial on WiX से, यहाँ है एक page on custom actions और उन्हें सेट अप करने के लिए - आप मूल रूप से अपने WiX फ़ाइल में एक <CustomAction> तत्व को परिभाषित और क्या करना है निर्दिष्ट करने की आवश्यकता है जब यह मार डाला है:

<CustomAction Id='LaunchFile' FileKey='FoobarEXE' ExeCommand='' Return='asyncNoWait' /> 

हो जाएगा ताकि एक फ़ाइल लॉन्च करें जिसे आपने अभी अपने ऐप के हिस्से के रूप में स्थापित किया है और इसे आपकी वाईएक्स स्क्रिप्ट में FoobarEXE के रूप में संदर्भित किया गया है।

<CustomAction Id='LaunchFile' BinaryKey='FoobarEXE' ExeCommand='' Return='asyncNoWait' /> 

यह एक बाइनरी फ़ाइल (जैसे एक EXE) का संदर्भ होता है, कि आप (MSI या कैब) अपने WiX स्थापना पैकेज में शामिल है, लेकिन यह स्थापना के भाग के रूप में स्थापित नहीं हो गया है, और कहा कि एक के रूप में निकाला गया है बाइनरी फ़ाइल।

एक बार जब आप जानते हैं कि आप क्या करेंगे, आप स्थापना चरणों के अनुक्रम में जब परिभाषित करने की जरूरत है, इस कस्टम क्रिया निष्पादित किया जाना चाहिए:

<InstallExecuteSequence> 
    ... 
    <Custom Action='LaunchFile' After='InstallFinalize'>NOT Installed</Custom> 
</InstallExecuteSequence> 

यहाँ, कस्टम क्रिया कहा जाता LaunchFile के बाद निष्पादित किया जाएगा स्थापना को अंतिम रूप दिया गया है, लेकिन केवल, अगर यह निर्धारित किया गया था कि ऐप अभी तक स्थापित नहीं किया गया था।

तो, मुझे लगता है कि, आप वाईएक्स में कस्टम एक्शन के साथ क्या करने का प्रयास कर रहे हैं, उसे करने में सक्षम होना चाहिए - अतिरिक्त जानकारी के लिए WiX 2.0 documentation और Steven Bone's blog post series देखें।

आशा है कि इससे मदद मिलती है!

मार्क

+0

आप पहले से चल रहे हैं, जबकि आप विंडोज इंस्टॉलर का उपयोग नहीं कर सकते हैं। यह एक ऐसा मामला है: पीओएस इंस्टॉलर एक एक्सई रैपर है जो विंडोज इंस्टालर को आमंत्रित करता है, इसलिए आप एक्सई का उपयोग किसी अन्य इंस्टॉलेशन के दौरान कस्टम एक्शन के रूप में नहीं कर सकते हैं। –

0

आप एक प्रयोग dotnetinstaller, संलग्न एक नमूना xml फ़ाइल है।

भागो InstallerEditor.exe और नमूना एक्सएमएल फ़ाइल को खोलने, तो, आपके उपयोग के अनुरूप इस तरह InstallerLinker.exe चलाने के लिए इसे संशोधित: "c:: InstallerLinker.exe/विन्यास \ पथ \ अपने \ prod को \।xml "/ आउटपुट:" c: \ काम \ setup.exe "/t:"%DOTNETINSTALLER%\Bin\dotNetInstaller.exe"/v

<?xml version="1.0" encoding="utf-8"?> 
<configurations lcid_type="UserExe" show_language_selector="False" language_selector_title="" language_selector_ok="OK" language_selector_cancel="Cancel" configuration_no_match_message="" ui_level="full" fileversion="" productversion="" log_enabled="True" log_file="#APPPATH\YourPackageInstallLog.txt"> 
    <schema version="1.10.1525.0" generator="dotNetInstaller InstallerEditor" /> 
    <fileattributes> 
    <fileattribute name="FileDescription" value="YourPackage Installer" /> 
    <fileattribute name="CompanyName" value="MyCompany Design" /> 
    <fileattribute name="FileVersion" value="%RESOLVEVERSION%" /> 
    </fileattributes> 
    <configuration dialog_caption="YourPackage Installer" dialog_message="In order to install YourPackage you must install these components:" dialog_message_uninstall="" dialog_bitmap="#APPPATH\banner.bmp" skip_caption="Skip" install_caption="Install" uninstall_caption="Uninstall" cancel_caption="Close" status_installed=" (Installed)" status_notinstalled="" failed_exec_command_continue="Failed to install %s. Continue with others components?" installation_completed="YourPackage installed successfully!" uninstallation_completed="YourPackage uninstalled successfully!" installation_none="YourPackage is already installed!" uninstallation_none="YourPackage is not installed!" installing_component_wait="Installing %s. Wait, this operation could take some time ..." uninstalling_component_wait="Uninstalling %s. Wait, this operation could take some time ..." reboot_required="To continue the installation you must restart your computer. Restart now?" must_reboot_required="False" dialog_otherinfo_caption="" dialog_otherinfo_link="" complete_command="" complete_command_silent="" complete_command_basic="" wait_for_complete_command="True" auto_close_if_installed="True" auto_close_on_error="False" reload_on_error="True" dialog_show_installed="True" dialog_show_uninstalled="True" dialog_show_required="True" cab_dialog_message="%s" cab_cancelled_message="" cab_dialog_caption="" cab_path="#TEMPPATH\#GUID" cab_path_autodelete="True" dialog_default_button="cancel" dialog_position="" dialog_components_list_position="" dialog_message_position="" dialog_bitmap_position="" dialog_otherinfo_link_position="" dialog_osinfo_position="" dialog_install_button_position="" dialog_cancel_button_position="" dialog_skip_button_position="" auto_start="False" auto_continue_on_reboot="False" reboot_cmd="" show_progress_dialog="True" show_cab_dialog="True" type="install" lcid_filter="" language_id="" language="" os_filter="" os_filter_min="win7" os_filter_max="win7" processor_architecture_filter="" supports_install="True" supports_uninstall="True"> 
    <component package="#CABPATH\%CUDATOOLKITPACKAGE%" cmdparameters="/passive" cmdparameters_silent="/qn" cmdparameters_basic="/qb-" uninstall_package="" uninstall_cmdparameters="/qb-" uninstall_cmdparameters_silent="/qn" uninstall_cmdparameters_basic="/qb-" id="%CUDATOOLKITPACKAGE%" display_name="%CUDATOOLKITPACKAGE%" uninstall_display_name="" os_filter="" os_filter_min="win7" os_filter_max="win7" os_filter_lcid="" type="msi" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="" allow_continue_on_error="True" default_continue_on_error="False" required_install="False" required_uninstall="False" selected_install="True" selected_uninstall="False" note="" processor_architecture_filter="x64" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="False" show_progress_dialog="True" show_cab_dialog="True"> 
     <embedfile sourcefilepath="..\..\..\Prereqs\%CUDATOOLKITPACKAGE%" targetfilepath="%CUDATOOLKITPACKAGE%" /> 
     <installedcheck path="SOFTWARE\NVIDIA Corporation\GPU Computing Toolkit\CUDA" fieldname="VersionsInstalled" fieldvalue="%CUDATOOLKITVERSION%" defaultvalue="False" fieldtype="REG_MULTI_SZ" comparison="contains" rootkey="HKEY_LOCAL_MACHINE" wowoption="WOW64_64" type="check_registry_value" description="Installed Check" /> 
    </component> 
    <component executable="#CABPATH\%POSTGRESQLPACKAGE%" executable_silent="" executable_basic="" install_directory="" responsefile_source="" responsefile_target="" responsefile_format="none" uninstall_executable="" uninstall_executable_silent="" uninstall_executable_basic="" uninstall_responsefile_source="" uninstall_responsefile_target="" returncodes_success="" returncodes_reboot="" exeparameters="--mode unattended --unattendedmodeui minimal --servicepassword YourProduct --superpassword YourProduct --superaccount postgres --serviceaccount postgres --debuglevel 4" exeparameters_basic="" exeparameters_silent="" uninstall_exeparameters="" uninstall_exeparameters_basic="" uninstall_exeparameters_silent="" id="%POSTGRESQLPACKAGE%" display_name="%POSTGRESQLPACKAGE%" uninstall_display_name="" os_filter="" os_filter_min="win7" os_filter_max="win7" os_filter_lcid="" type="exe" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="" allow_continue_on_error="True" default_continue_on_error="False" required_install="False" required_uninstall="False" selected_install="True" selected_uninstall="False" note="" processor_architecture_filter="x64" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="False" show_progress_dialog="True" show_cab_dialog="True"> 
     <embedfile sourcefilepath="..\..\..\Prereqs\%POSTGRESQLPACKAGE%" targetfilepath="%POSTGRESQLPACKAGE%" /> 
     <installedcheck path="SOFTWARE\PostgreSQL\Installations\postgresql-x64-9.0" fieldname="Version" fieldvalue="%POSTGRESQLVERSION%" defaultvalue="False" fieldtype="REG_SZ" comparison="version_ge" rootkey="HKEY_LOCAL_MACHINE" wowoption="WOW64_64" type="check_registry_value" description="Installed Check" /> 
    </component> 
    <component executable="#CABPATH\vcredist_x64.exe" executable_silent="" executable_basic="" install_directory="" responsefile_source="" responsefile_target="" responsefile_format="none" uninstall_executable="" uninstall_executable_silent="" uninstall_executable_basic="" uninstall_responsefile_source="" uninstall_responsefile_target="" returncodes_success="" returncodes_reboot="" exeparameters="/passive" exeparameters_basic="" exeparameters_silent="" uninstall_exeparameters="" uninstall_exeparameters_basic="" uninstall_exeparameters_silent="" id="vcredist_x64.exe" display_name="vcredist_x64.exe" uninstall_display_name="" os_filter="" os_filter_min="win7" os_filter_max="win7" os_filter_lcid="" type="exe" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="" allow_continue_on_error="True" default_continue_on_error="False" required_install="False" required_uninstall="False" selected_install="True" selected_uninstall="False" note="" processor_architecture_filter="" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="False" show_progress_dialog="True" show_cab_dialog="True"> 
     <embedfile sourcefilepath="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\vcredist_x64\vcredist_x64.exe" targetfilepath="vcredist_x64.exe" /> 
     <installedcheck path="SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\VC\VCRedist\x64" fieldname="Installed" fieldvalue="1" defaultvalue="False" fieldtype="REG_DWORD" comparison="match" rootkey="HKEY_LOCAL_MACHINE" wowoption="WOW64_64" type="check_registry_value" description="Installed Check" /> 
    </component> 
    <component executable="#CABPATH\%QUICKTIMEPACKAGE%" executable_silent="" executable_basic="" install_directory="" responsefile_source="" responsefile_target="" responsefile_format="none" uninstall_executable="" uninstall_executable_silent="" uninstall_executable_basic="" uninstall_responsefile_source="" uninstall_responsefile_target="" returncodes_success="" returncodes_reboot="" exeparameters="/passive" exeparameters_basic="" exeparameters_silent="" uninstall_exeparameters="" uninstall_exeparameters_basic="" uninstall_exeparameters_silent="" id="%QUICKTIMEPACKAGE%" display_name="%QUICKTIMEPACKAGE%" uninstall_display_name="" os_filter="" os_filter_min="win7" os_filter_max="win7" os_filter_lcid="" type="exe" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="" allow_continue_on_error="True" default_continue_on_error="False" required_install="False" required_uninstall="False" selected_install="True" selected_uninstall="False" note="" processor_architecture_filter="" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="False" show_progress_dialog="True" show_cab_dialog="True"> 
     <embedfile sourcefilepath="..\..\..\Prereqs\%QUICKTIMEPACKAGE%" targetfilepath="%QUICKTIMEPACKAGE%" /> 
     <installedcheck path="SOFTWARE\Apple Computer, Inc.\QuickTime" fieldname="Version" fieldvalue="%QUICKTIMEVERSION%" defaultvalue="False" fieldtype="REG_DWORD" comparison="version_ge" rootkey="HKEY_LOCAL_MACHINE" wowoption="WOW64_32" type="check_registry_value" description="Installed Check" /> 
    </component> 
    <component package="#CABPATH\YourPackageInstaller.msi" cmdparameters="" cmdparameters_silent="/qn" cmdparameters_basic="/qb-" uninstall_package="" uninstall_cmdparameters="/qb-" uninstall_cmdparameters_silent="/qn" uninstall_cmdparameters_basic="/qb-" id="YourPackageInstaller.msi" display_name="YourPackageInstaller.msi" uninstall_display_name="" os_filter="" os_filter_min="win7" os_filter_max="win7" os_filter_lcid="" type="msi" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="" allow_continue_on_error="False" default_continue_on_error="False" required_install="True" required_uninstall="True" selected_install="True" selected_uninstall="True" note="" processor_architecture_filter="x64" status_installed="" status_notinstalled="" supports_install="True" supports_uninstall="True" show_progress_dialog="True" show_cab_dialog="True"> 
     <embedfile sourcefilepath="YourPackageInstaller.msi" targetfilepath="YourPackageInstaller.msi" /> 
     <installedcheck path="SOFTWARE\MyCompany Design\YourProduct YourPackage" fieldname="Version" fieldvalue="%YOURVERSION%" defaultvalue="False" fieldtype="REG_SZ" comparison="version_ge" rootkey="HKEY_LOCAL_MACHINE" wowoption="WOW64_64" type="check_registry_value" description="Installed Check" /> 
    </component> 
    </configuration> 
</configurations> 
1

मैं हाल ही में इस समस्या के साथ संघर्ष किया है प्रदान करने के लिए प्रयास करते हुए एक वाईएक्स बूटस्ट्रैपर में .NET के लिए पीओएस। बॉक्स के बाहर .NET निष्पादन योग्य के लिए पीओएस बहुत उपयोगी नहीं है, खासकर जब इसे किसी अन्य इंस्टॉलर से चुप इंस्टॉल के रूप में प्रदान करने का प्रयास किया जाता है। मुझे यह पता लगाने के लिए सबसे अच्छा तरीका मिल गया था ।

  1. भागो नेट निष्पादन और निकालने टी के लिए स्थिति: एक और अधिक अनुकूल कस्टम आत्म निकालने निष्पादन में नेट के लिए स्थिति यह समाधान है कि मेरे लिए काम किया है वह एक स्थानीय निर्देशिका में फाइलें।
  2. हाइलाइट अनज़िप निर्देशिका में सभी फ़ाइलों और फ़ोल्डरों और, WinRAR का उपयोग कर, क्लिक करें "संग्रह करने के लिए जोड़ें ..."
  3. विंडो में उस क्लिक ब्राउज़ पॉप अप होता है का चयन करने के लिए जहाँ आपके आउटपुट फ़ाइल को बचाने के लिए और बदल जाएगा पुरालेख कुछ और दोस्ताना (वैकल्पिक) के लिए नाम।
  4. संग्रहण विकल्प अनुभाग के अंतर्गत "SFX संग्रह बनाएं" पर क्लिक करें; ठीक क्लिक करें और आपके निर्दिष्ट स्थान में निष्पादन योग्य फ़ाइल जेनरेट की जाएगी।
  5. अपने नए निष्पादन योग्य पर राइट-क्लिक करें और "WinRAR के साथ खोलें" चुनें।
  6. शीर्ष पर SFX आइकन पर क्लिक करें और फिर "उन्नत SFX विकल्प" पर क्लिक करें।
  7. सेटअप टैब के तहत जाना "निष्कर्षण के बाद चलाने के लिए" और प्रवेश करने के लिए:

    Setup.exe/ADDLOCAL रनटाइम, Posdm

  8. जाएँ "मोड" टैब और "अस्थायी फ़ोल्डर को अनपैक" यह सुनिश्चित कर लें है चेक किया गया, और "सभी को छुपाएं" को "मूक मोड" के तहत चुना गया है
  9. ठीक दो बार क्लिक करें और WinRAR निष्पादन योग्य फ़ाइल में आपकी सेटिंग्स जोड़ देगा।
उपर्युक्त चरणों के बाद आप "बूटस्ट्रैपर-अनुकूल" तरीके से .NET के लिए पीओएस पैकेज करने की अनुमति देंगे और इसे अब आपके बंडल में एक एक्सपेकेज तत्व के रूप में शामिल किया जा सकता है जिसे चुपचाप इंस्टॉल किया जाएगा।

उम्मीद है कि यह किसी की सहायता करता है।

+1

इसके लिए आपको और अधिक उपवास की आवश्यकता है! –

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