2013-07-26 9 views
8

काम नहीं करता है, मैं परीक्षण मशीन पर एक सेवा स्थापित करने के लिए एक WiX का उपयोग कर रहा हूं। लेकिन जब मैं ऐसा करता हूं तो वह मशीन जो इसे मशीन पर स्थापित करता है वह 'प्रोग्राम जोड़ें/निकालें' नियंत्रण कक्ष विकल्प में देख पाता है। लेकिन मैं इसे मशीन पर हर उपयोगकर्ता के लिए दृश्यमान बनाना चाहता हूं।Wix इंस्टॉलर पर 'AllUsers' विकल्प सेट करना

मैंने कुछ शोध किया और महसूस किया कि मैं .wxs फ़ाइल में इंस्टॉलर बनाते समय AllUSERS संपत्ति सेट नहीं कर रहा हूं।

इसलिए मैंने इस स्क्रिप्ट <Property Id="AllUSERS" Value="1"/> के साथ अपनी स्क्रिप्ट अपडेट की और इंस्टॉलर बनाया। लेकिन अभी भी केवल उपयोगकर्ता जो स्थापित है उसे नियंत्रण कक्ष में देख सकता है।

इंस्टॉलर बनाने के लिए मेरी स्क्रिप्ट यहां दी गई है।

<?xml version='1.0' encoding='windows-1252'?> 

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

<Product Name='Importer Service' Id='PUT-GUID-HERE' UpgradeCode='PUT-GUID-HERE' 
Language='1033' Codepage='1252' Version='$(var.version)' Manufacturer='Test'> 

<Package Id='*' Keywords='Installer' Description="Imports data" 
    Manufacturer='Test' InstallerVersion='100' Languages='1033' Compressed='yes' 
    SummaryCodepage='1252' /> 

<Media Id='1' Cabinet='ImporterWebService.cab' EmbedCab='yes' 
     DiskPrompt="CD-ROM #1" /> 
<Property Id='DiskPrompt' Value="Importer Web Service 1.0 Installation [1]" /> 

<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" /> 
<Property Id="AllUSERS" Value="1"/> 

<Directory Id='TARGETDIR' Name='SourceDir'> 

    <Directory Id='ProgramFilesFolder' Name='PFiles'> 
    <Directory Id='Test' Name='Test1'> 
     <Directory Id='INSTALLDIR' Name='Importer Service'> 

     <Component Id='MainExecutable' Guid='*'> 
      <File Id='ImporterWindowsServiceEXE' 
       Name='Importer.WindowsService.exe' DiskId='1' 
       Source='Importer.WindowsService.exe' KeyPath='yes'> 
      </File> 

     <ServiceInstall 
      Id="ImporterServiceInstaller" 
      Type="ownProcess" 
      Vital="yes" 
      Name="Importer Service" 
      DisplayName="Importer Service" 
      Description="Imports data." 
      Start="demand" 
      Account="LocalSystem" 
      ErrorControl="ignore" 
      Interactive="no"> 
    </ServiceInstall> 

     <ServiceControl Id="StartService" Stop="both" Remove="uninstall" 
         Name="Importer Service" Wait="yes" /> 
     </Component> 

     <Component Id='FileHelpersLibrary' Guid='*'> 
      <File Id='FileHelpersDLL' Name='FileHelpers.dll' DiskId='1' 
       Source='FileHelpers.dll' KeyPath='yes' /> 
     </Component>   

     <Component Id='CodeSmithDataLibrary' Guid='*'> 
      <File Id='CodeSmithDataDLL' Name='CodeSmith.Data.dll' DiskId='1' 
       Source='CodeSmith.Data.dll' KeyPath='yes' /> 
     </Component>   

     </Directory> 
    </Directory> 
    </Directory> 

    <Directory Id="ProgramMenuFolder" Name="Programs"> 
    <Directory Id="ProgramMenuDir" Name="Importer Service"> 
     <Component Id="ProgramMenuDir" Guid="*"> 
     <RemoveFolder Id='ProgramMenuDir' On='uninstall' /> 
     <RegistryValue Root='HKCU' 
         Key='Software\[Manufacturer]\[ProductName]' 
         Type='string' Value='' KeyPath='yes' /> 
     </Component> 
    </Directory> 
    </Directory> 

    <Directory Id="DesktopFolder" Name="Desktop" /> 
</Directory> 

<Feature Id='Complete' Title='Importer Service' 
     Description='The complete package' 
     Display='hidden' Level='1' ConfigurableDirectory='INSTALLDIR'> 
    <ComponentRef Id='MainExecutable' /> 
    <ComponentRef Id='FileHelpersLibrary' /> 
    <ComponentRef Id='CodeSmithDataLibrary' />  
    <ComponentRef Id='ProgramMenuDir' />  
</Feature> 

<UIRef Id="WixUI_InstallDir" /> 
<UIRef Id="WixUI_ErrorProgressText" /> 


</Product> 
</Wix> 

कोई व्यक्ति कृपया स्क्रिप्ट को देख सकता है और मुझे बता सकता है कि मैं क्या गलत कर रहा हूं।

धन्यवाद।

+0

वाईएक्स का विंडोज इंस्टालर पैकेज बनाने के लिए इसे तेजी से आसान बनाने का लंबा इतिहास है। इंटरनेट पर कई अच्छे ट्यूटोरियल और उदाहरण हैं लेकिन वे अक्सर वाईएक्स के विकास के साथ नहीं रहते हैं। आप अभी भी उनसे सीख सकते हैं लेकिन वर्तमान दस्तावेज (एक्सएमएल स्कीमा सहित, उदाहरण के लिए, इंटेलिसेन्स के माध्यम से) को जांचना सुनिश्चित करें और वाईएक्सकॉप टूल चलाएं ताकि नए इंस्टॉलर्स पर आपका काम अद्यतित हो। –

+0

AllUSERS की बजाय ALLUSERS आज़माएं –

उत्तर

13

इसके बजाय ALLUSERS स्पष्ट रूप से स्थापित करने की, perMachine करने के लिए Package तत्व की InstallScope सेट करके देखें। प्रलेखन के अनुसार, इस तथ्य यह है:

सेट इस मूल्य घोषित करने के लिए है कि पैकेज प्रति-मशीन स्थापना और स्थापित करने के लिए ऊपर उठाया विशेषाधिकारों की आवश्यकता है। ALLUSERS संपत्ति को 0

इसलिए, इसे हुड के तहत आवश्यक नौकरी करना चाहिए।