.net - एक इंस्टॉलर कैसे बना सकता है, जो तृतीय-पक्ष सेटअप(exe) स्थापित करता है और उसी निर्देशिका में कस्टम फाइलों को ढूंढता है?



visual-studio wix (1)

मुझे उम्मीद है कि यह शीर्षक सार्थक है, और मेरे अनुरोध को गुमराह नहीं कर रहा है

मैं अपने अनुप्रयोग को एक सेटअप फ़ाइल के रूप में तैनात करना चाहता हूं, जिसके लिए तृतीय-पक्ष निर्भरता की आवश्यकता है
लक्ष्य: विंडोज 7/8

  • मेरा अनुप्रयोग (सी # .NET प्रोजेक्ट)
  • तृतीय-पक्ष उपकरण (.exe सेटअप)
    • [-] अतिरिक्त रूप से सिस्टम पर RegKeys को जोड़ता है, जिस पर बाद में मेरे अनुप्रयोग के लिए आवश्यक सेटअप विज़ार्ड में चुने हुए विकल्पों के आधार पर।
    • [+] मौन स्थापित (तर्क के साथ) का समर्थन करता है
    • setup.exe /S /D="C:\Program Files (x86)\3rd-Party"

मेरा आवेदन तृतीय-पक्ष के समान निर्देशिका में संग्रहीत किया जाना चाहिए I
तो व्यवस्था चुपचाप setup.exe को स्थापित करने के लिए होगी, और इसे समाप्त होने के बाद; मेरा आवेदन एक ही स्थान पर स्थित होना चाहिए।
वैकल्पिक रूप से सेटअप यह जांच सकता है कि तृतीय-पक्ष पहले से ही स्थापित है या नहीं, लेकिन यह आवश्यक नहीं है, चूंकि मौन इंस्टॉलेशन /S कोई भी परिवर्तन नहीं करेगा या मूल को कोई भी समस्या नहीं करेगा।

सेटअप विज़ार्ड को निम्न पृष्ठों के साथ अनुसरण करना चाहिए:

Setup StartPage -> Licens agreement -> Choose installion path -> Progress -> Finish.

चुनें स्थापना को एक चर को इंगित करना चाहिए, जिसका इस्तेमाल तीसरे पक्ष के आवेदन और म्यू अनुप्रयोग की चुप स्थापना के लिए किया जाएगा।

क्या आप इस मामले में उपयोग करने की सिफारिश करते हैं? (केवल मुफ्त समाधान कृपया)
मैं इनो-सेटअप और वाईएक्स में एक संक्षिप्त नजर डालता हूं, लेकिन इस छोटी सी बात के लिए उन्हें थोड़ा सा लग रहा था।
इसके अलावा मैं यह कहना चाहता हूं कि मेरे पास स्क्रिप्ट के साथ अनुभव नहीं है-सेटअप की भाषाएं (स्थिर समय)


क्या आपको अभी भी इसकी ज़रूरत है? वाईएक्स के साथ यह काफी आसान होगा: आपको दो परियोजनाएं बनाने की जरूरत है: एक एमएसआई जो आपकी अतिरिक्त फाइलों को पैकेज करता है, और फिर एमएसआई और मौजूदा सेटअप। एक्सई को वाईएक्स बंडल में डाल दिया।

Setup.exe पर तर्कों को पारित करना, इसलिए यह चुप्पी स्थापित किया जा सकता है, लेकिन आपको पहले एक प्रतिक्रिया फ़ाइल उत्पन्न करना होगा। (/ s / r के साथ सेटअप चलाएं, और फिर setup.iss फ़ाइल को, आमतौर पर C: \ Windows में मिलें।) और फिर आपको उन लोगों को <InstallCommand> के माध्यम से पास करना होगा और उद्धरणों को छोड़ना मुश्किल हो सकता है। एक तर्क के रूप में setup.exe ही नहीं पास करें यह देखने के लिए कि अंततः क्या हो जाता है, स्थापित लॉग को देखें

नीचे बंडल के लिए आपको क्या जरूरत है, ज्यादातर कोड पूरा होता है: (आपको आईडी के साथ आना होगा, और जहां आपके मशीन पर चीजें मौजूद हैं, उनको निर्धारित करना होगा)।

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
      xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">

    <Bundle Name="some-cool-name-for-the-whole-thing"
        Version="1.0"
        UpgradeCode="your-guid-here">

    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.HyperlinkLicense">
        <bal:WixStandardBootstrapperApplication
            LicenseUrl=""
            ShowVersion="yes"/>
    </BootstrapperApplicationRef>

    <Chain>

    <ExePackage Id="some_id"
        SourceFile="path-to-the-setup.exe">
    <CommandLine InstallArgument="/s /f1&quot;fullpath-to-your-iss-file.iss&quot;/>
    </ExePackage>

    <MsiPackage Id="some-other-id-here"
        SourceFile="path-to-the-MSI-you-made-for-your-app">
    </MsiPackage>


    </Chain>
    </Bundle>
    </Wix>


एमएसआई के लिए, फिर आप की ज़रूरत की एक पूरी तरह से पूर्ण रूपरेखा:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">

    <Product Id="*"
    Name="name-of-your-app"
    UpgradeCode="some-unique-constant-guid-across-versions">

    <Package InstallerVersion="500" 
        Compressed="yes"<br>
        InstallScope="PerMachine"/>


    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />

    <MediaTemplate EmbedCab="yes" />


    <Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="ProgramFilesFolder">
           <Directory Id="my_app_install_dir" Name="My App" />
        </Directory>
    </Directory>

    <ComponentGroup Id="the-component-group-id" Directory="my_app_install_dir">

        <Component Id="some-other-id-name" Guid="{some-new-GUID}" >
            <File Id="some-id-1-for-your-file" Source="path-to-your-file" KeyPath="yes" />
         </Component>

         <Component Id="some-other-id2-name" Guid="{some-new-GUID2}">
             <File Id="some-id-2-for-your-another-file" Source="path-to-another-file" KeyPath="yes" />
         </Component>

    <!-- add more files as needed -->

    </ComponentGroup>

<Feature Id="some-feature-id" Title="some-title" Level="1">
    <ComponentGroupRef Id="the-component-group-id" />
    </Feature>
    </Product>
    </Wix>




inno-setup