मैं कैसे WiX में कुछ अतिरिक्त फ़ाइलों के साथ एक सेवा स्थापित करते हैं, और क्या परिभाषित फ़ाइल वास्तविक सेवा EXE फ़ाइल है?एक बहु फ़ाइल NT सेवा का उपयोग कर स्थापित कर रहा है WiX (2.0)
परिदृश्य: मैं एक सेवा है जो सिर्फ एक EXE फ़ाइल था, और इस कोड के साथ WiX में एक Windows NT सेवा के रूप में यह स्थापित:
<Component Id='InstallMyServiceComponent' Guid='{....}' DiskId='1'>
<File Id='InstallMyServiceEXEFile' LongName='MyService.exe'
Name='MyServ.exe' src='MyService/bin/release/MyService.exe' KeyPath='yes'/>
<ServiceInstall Id='InstallMyService' Name='MyService' Description='My Service'
ErrorControl='normal' Start='auto' Type='ownProcess' Vital='yes' />
<ServiceControl Id='UninstallMyService' Name='MyService' Remove='uninstall'
Wait='yes' />
</Component>
<Component Id='RunMyServiceComponent' Guid='.......'>
<ServiceControl Id='RunMyService' Name='MyService' Start='install'
Stop='uninstall' Wait='no' />
</Component>
और मैं एक सुविधा है जो उसके बाद स्थापित करने के लिए अनुमति होगी था और वैकल्पिक रूप से इस सेवा को शुरू करें।
अब, मेरी समस्या है - अब मेरी सेवा हो गया है, और एक EXE नहीं रह गया है एक भी EXE है - यह एक से अधिक फ़ाइलों, EXE, DLL, और कुछ समर्थन फ़ाइलों है।
हालांकि, मुझे लगता है कि अब कैसे स्थापित कर सकते हैं ??
मैं अपने सभी फ़ाइल
<Component Id="MyService" Guid="......" DiskId="1">
<File Id="fileMyService_framework_dll" LongName="Framework.dll"
Name="Framewrk.DLL" src="MyService\Framework.dll" />
<File Id="fileMyService_dal_dll" LongName="MyServiceDAL.dll"
Name="SrvcDAL.DLL" src="MyService\ServiceDAL.dll" />
<File Id="fileMyService_helpers_dll" LongName="Helpers.dll"
Name="Helpers.DLL" src="MyService\Helpers.dll" />
<File Id="fileMyService_exe" LongName="MyService.exe"
Name="MySrv.EXE" src="MyService\MyService.exe" />
</Component>
पहले के साथ एक घटक करने की कोशिश की, मैं सिर्फ इस घटक के ServiceInstall और ServiceControl टैग जोड़ने के लिए करने की कोशिश की:
<Component Id="MyService" Guid="......" DiskId="1">
<File Id="fileMyService_framework_dll" LongName="Framework.dll"
Name="Framewrk.DLL" src="MyService\Framework.dll" />
<File Id="fileMyService_dal_dll" LongName="MyServiceDAL.dll"
Name="SrvcDAL.DLL" src="MyService\ServiceDAL.dll" />
<File Id="fileMyService_helpers_dll" LongName="Helpers.dll"
Name="Helpers.DLL" src="MyService\Helpers.dll" />
<File Id="fileMyService_exe" LongName="MyService.exe"
Name="MySrv.EXE" src="MyService\MyService.exe" />
<ServiceInstall Id='InstallMyService' Name='MyService'
Description='My Service' ErrorControl='normal' Start='auto'
Type='ownProcess' Vital='yes' />
<ServiceControl Id='UninstallMyService' Name='MyService'
Remove='uninstall' Wait='yes' />
</Component>
लेकिन फिर मेरी "फ्रेमवर्क। dll "बनाया जा रहा सेवा के लिए स्रोत पथ के रूप में स्थापित हो जाता है ........
तो मैंने सोचा कि मैं, वास्तव में सेवा स्थापित करने के लिए एक दूसरे घटक बनाएंगे ServiceInstall का उपयोग कर , और मैं केवल FileRef का उपयोग कर उस सेवा EXE फ़ाइल का संदर्भ दूंगा - लेकिन ऐसा प्रतीत नहीं होता है (कम से कम Wix2 में)।
<Component Id='InstallMyServiceComponent' Guid='{....}' DiskId='1'>
<FileRef Id='fileMyService_exe' KeyPath='yes'/>
<ServiceInstall Id='InstallMyService' Name='MyService'
Description='My Service' ErrorControl='normal' Start='auto'
Type='ownProcess' Vital='yes' />
<ServiceControl Id='UninstallMyService' Name='MyService'
Remove='uninstall' Wait='yes' />
</Component>
तो - क्या एक गरीब WiX लेखक होगा फ़ाइलों के घटक के सूची से सही EXE फ़ाइल (नहीं बस किसी भी मनमाने ढंग से फ़ाइल लेने के लिए सभी आवश्यक फ़ाइलों को स्थापित करने के लिए, और अभी भी मिल NT सेवा स्थापना है) ??
मार्क
आप मुख्यपथ = 'हां' फ़ाइल तत्व में exe पर स्थापित करने के लिए भूल गया था। –
धन्यवाद, शै - रॉब का जवाब आपके कथन की पुष्टि करने लगता है - बहुत सराहना की! –