2010-02-17 6 views
10

पर शुभ दिन चालू हो गया।इंस्टॉलेशन पूर्ण होने के बाद एप्लिकेशन लॉन्च करें, यूएसी

मैं WIX (विंडोज इंस्टालर एक्सएमएल) तकनीक का उपयोग कर हमारे उत्पाद के लिए एक इंस्टॉलर बना रहा हूं। अपेक्षित व्यवहार यह है कि उत्पाद लॉन्च किया गया है, यदि चेक बॉक्स को इंस्टॉलेशन के बाद चेक किया गया है।

यह कुछ समय से काम कर रहा है, लेकिन हमने हाल ही में पाया कि Win 7 का यूएसी, और Vista लॉन्च होने से एप्लिकेशन को रोक रहा है। मैंने कुछ शोध किया है और मुझे यह सुझाव दिया गया है कि मुझे गुण

निष्पादित करें = 'स्थगित' और प्रतिरूपण = 'नहीं'।

जो मैंने किया था, लेकिन फिर पता चला कि स्थगित निष्पादित करने के लिए, कस्टमएक्शन को स्थापित करना होगा, इंस्टॉलइनाइजलाइज़ के बीच, और IntalFinalize चरणों के बीच; जो मुझे चाहिए वह नहीं है। इंस्टॉलेशन को अंतिम रूप देने के बाद मुझे लॉन्च करने के लिए उत्पाद की आवश्यकता है, अगर लॉन्च चेकबॉक्स चेक किया गया है। अनुमतियों को बढ़ाने के लिए कोई अन्य तरीका है?

किसी भी और सभी उत्तरों, सुझाव, या अनुनाद की सराहना की जाएगी।

उत्तर

3

वाईएक्स टूलसेट दस्तावेज़ में How To: Run the Installed Application After Setup नामक एक विषय है जो इसे कैसे करना है, इसमें शामिल है।

+2

वह लेख अनुमतियों को बढ़ाने के संबंध में ओपी के प्रश्न को संबोधित नहीं करता है। – Wjdavis5

5

दुर्भाग्यवश, रॉब का उल्लेख करने वाला विषय वास्तव में विंडोज विस्टा या 7 के लिए मदद नहीं करता है जैसा कि मैंने पाया है। खासकर यूएसी के साथ चालू।

जिस तरह से मुझे यह मिला है वह कस्टमएक्शन का उपयोग करना है जो कमांड प्रॉम्प्ट लॉन्च करता है और जिस एप्लिकेशन को आप चाहते हैं उसे लॉन्च करता है।

<CustomAction 
    Id="LaunchApp" 
    Directory="YourDirectory" 
    ExeCommand="[SystemFolder]cmd.exe /C app.exe" /> 

आशा है कि मदद करता है।

रे

2

WiX and DTF: Using a bootstrapper to force elevated privileges in Vista देखें कि आप पूरे MSI ऊंचा चला सकते हैं।

आप जेनरेटबूटस्ट्रैप कार्य की सहायता से .wixproj फ़ाइल में इसे स्वचालित कर सकते हैं। संक्षेप में: इस तरह

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
    <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="Setup" type="win32" /> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
    <security> 
     <requestedPrivileges> 
     <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
     </requestedPrivileges> 
    </security> 
    </trustInfo> 
</assembly> 

और संशोधित अपने .wixproj फ़ाइल:

इस तरह एक setup.manifest बनाएं

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
<!-- standard PropertyGroups and ItemGroups --> 

<PropertyGroup> 
    <WindowsSDK>$(registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\[email protected])</WindowsSDK> 
</PropertyGroup> 
<PropertyGroup Condition="$(WindowsSDK) == ''"> 
    <WindowsSDK>$(registry:HKEY_CURRENT_USER\SOFTWARE\Microsoft\Microsoft SDKs\[email protected])</WindowsSDK> 
</PropertyGroup> 

<PropertyGroup> 
    <mt_exe>$(WindowsSDK)bin\mt.exe</mt_exe> 
</PropertyGroup> 

<ItemGroup> 
    <BootstrapperFile Include="Microsoft.Windows.Installer.3.1" > 
    <ProductName>Windows Installer 3.1</ProductName> 
    </BootstrapperFile> 
    <!-- more BootstrapperFile items --> 
</ItemGroup> 

<Target Name="Bootstrapper" 
     Inputs="$(OutDir)$(TargetFileName)" 
     Outputs="$(OutDir)\Setup.exe" 
     Condition=" '$(OutputType)'=='package' " > 
    <GenerateBootstrapper ApplicationName="application name" 
         ApplicationFile="$(TargetFileName)" 
         BootstrapperItems="@(BootstrapperFile)" 
         ComponentsLocation="Relative" 
         OutputPath="$(OutputPath)" 
         Culture="en-US" 
         Path="$(WindowsSDK)\Bootstrapper" /> 
</Target> 

<Target Name="PatchSetupExe" DependsOnTargets="Bootstrapper"> 
    <Exec Command='"$(mt_exe)" -manifest setup.manifest -outputresource:$(OutDir)\Setup.exe;#1' IgnoreExitCode='false' /> 
</Target> 

<Import Project="$(MSBuildExtensionsPath)\Microsoft\WiX\v3.0\Wix.targets" /> 

<PropertyGroup> 
    <BuildDependsOn>$(BuildDependsOn);Bootstrapper;PatchSetupExe</BuildDependsOn> 
</PropertyGroup> 
</Project> 

अब एक सही setup.exe जो ऊंचा चलेंगे हो जाएगा हर निर्माण पर उत्पन्न किया।

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