2014-11-05 4 views
11

की सामग्री निकालें मेरे पास एक विस बर्न बूटस्ट्रैपर में एक एमएसआई पैकेज बंडल है। क्या मैं इस एमएसआई को लक्ष्य मशीन पर बंडल से निकाल सकता हूं?जला बूटस्ट्रैपर

उत्तर

24

आपको dark.exe उपयोगिता का उपयोग करने की आवश्यकता है जो वाईएक्स के साथ आता है।

dark.exe -x temp <installer> 
5

बंडल नहीं ही स्वयं निकाल सकते हैं, जब तक किसी this feature लागू करता है।

0

यदि आप कस्टम बूटस्ट्रैपर एप्लिकेशन का उपयोग कर रहे हैं, तो आप अपने बंडल से एम्बेडेड .msi निकाल सकते हैं, फिर वाईएक्स एसडीके का उपयोग करके उस .msi की सामग्री निकालें। तब

unbinder = new Unbinder(); 
unbinder.Unbind(bundlePath, OutputType.Bundle, tmpFolder); 
unbinder.DeleteTempFiles(); 

, फ़ाइलों को अलग करने के लिए InstallPackge वर्ग का उपयोग करें::

using (var msiPackage = new InstallPackage(msiFilePath, DatabaseOpenMode.Transact) { WorkingDirectory = _targetFolder }) 
{ 
    using (var session = Microsoft.Deployment.WindowsInstaller.Installer.OpenPackage(msiPackage, ignoreMachineState: true)) 
    { 
    msiPackage.ExtractFiles(fileKeysToInstall); 
    } 
    msiPackage.Close() 
} 

है कि

संक्षिप्त उत्तर है कि आप अपने बंडल से MSI फ़ाइलों को अलग करने के लिए Unbinder वर्ग का उपयोग कर सकते है आपको जो करना है उसका एक बहुत ही सरल संस्करण। मैंने बहुत अधिक विवरण के साथ एक ब्लॉग पोस्ट लिखा है, जिसे आप यहां पा सकते हैं: http://www.wrightfully.com/extracting-msi-files-without-running-the-installer

महत्वपूर्ण नोट: यह आपके किसी भी कस्टम क्रिया को नहीं चलाता है, इसलिए यह ध्यान में रखना सुनिश्चित करता है।

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