c# - Wix: प्रबंधित बीए कमांड लाइन प्रभावी नहीं है




bootstrapper burn (2)

कुंजी -quiet ध्वज को चुनना है और एक UI प्रदर्शित नहीं करना है , और इसके बजाए कार्रवाई की जा रही है।

यह DisplayMode प्रॉपर्टी का उपयोग करते हुए बूटस्ट्रैपर बेस क्लास के माध्यम से उजागर किया जाता है, जो कि Display एणम मान का उपयोग करता है। विकल्प हैं

public enum Display
{
  Unknown,
  Embedded,
  None,
  Passive,
  Full,
}

तब आप निर्धारित कर सकते हैं कि Command.Action माध्यम से किस क्रिया को निष्पादित किया जाए। एक्शन वैल्यू (फिर, बूटस्ट्रैपर बेस क्लास में) जो LaunchAction का उपयोग करता है। विकल्प हैं:

public enum LaunchAction
{
 Unknown,
 Help,
 Layout,
 Uninstall,
 Install,
 Modify,
 Repair,

}

इसलिए, मैंने एक कस्टम प्रॉपर्टी का उपयोग किया है जिसे मैंने RunningSilent नामित किया है, जहां मैं एक UI प्रदर्शित नहीं कर पाता हूं, फिर उस तरह का प्रयोग करें जैसा कि नीचे दिखाया गया है:

    /// <summary>
    /// True if running in silent display mode (ie: no UI).
    /// </summary>
    public virtual bool RunningSilent
    {
        get
        {
            return (DisplayMode != Display.Full && DisplayMode != Display.Passive);
        }
    }

    protected override void Run()
    {
        if (RunningSilent)
        {
             Log("Running without UI");
             LaunchAction requestedAction = Command.Action;
             //... this is an async call, so handle it accordingly.
             Engine.Plan(requestedAction);
             //... followed by Engine.Apply();

        }
        else
        {
            Log("Showing UI window");
            //.. Run your Managed UI
        }
    }

ब्रायन से टेस्टबा बूटस्ट्रैपर के साथ खेलते समय, पहले मैंने 1.0.0.0 स्थापित किया था। तब मैं 1.0.0.1 संस्करण को बढ़ाया और प्रक्रिया लॉग इन किया। यहां वह हिस्सा है जहां अपग्रेड के दौरान -इन-कनेक्ट कमांड लाइन पारित की गई थी:

[2870:21C0][2014-02-24T17:46:38]i300: Apply begin 
[1A44:1E54][2014-02-24T17:46:41]i360: Creating a system restore point. 
[1A44:1E54][2014-02-24T17:47:15]i361: Created a system restore point. 
[1A44:1E54][2014-02-24T17:47:15]i000: Caching bundle from: 'C:\Users\fwaheed\AppData\Local\Temp\{57a07296-0310-4628-971c-2da38aa09f25}\.be\BootstrapperSetup.exe' to: 'C:\ProgramData\Package Cache\{57a07296-0310-4628-971c-2da38aa09f25}\BootstrapperSetup.exe' 
[1A44:1E54][2014-02-24T17:47:15]i320: Registering bundle dependency provider: {57a07296-0310-4628-971c-2da38aa09f25}, version: 1.0.0.1 
[1A44:2B40][2014-02-24T17:47:16]i305: Verified acquired payload: DummyInstallationPackageId at path: C:\ProgramData\Package Cache\.unverified\DummyInstallationPackageId, moving to: C:\ProgramData\Package Cache\{F1D62AA5-E68C-4B99-A6DD-D7EAE5A1D238}v1.0.0.1\DummyInstaller.msi. 
[1A44:1E54][2014-02-24T17:47:16]i323: Registering package dependency provider: {F1D62AA5-E68C-4B99-A6DD-D7EAE5A1D238}, version: 1.0.0.1, package: DummyInstallationPackageId 
[1A44:1E54][2014-02-24T17:47:16]i301: Applying execute package: DummyInstallationPackageId, action: Install, path: C:\ProgramData\Package Cache\{F1D62AA5-E68C-4B99-A6DD-D7EAE5A1D238}v1.0.0.1\DummyInstaller.msi, arguments: ' ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="7"' 
[2870:21C0][2014-02-24T17:47:22]i319: Applied execute package: DummyInstallationPackageId, result: 0x0, restart: None 
[1A44:1E54][2014-02-24T17:47:22]i325: Registering dependency: {57a07296-0310-4628-971c-2da38aa09f25} on package provider: {F1D62AA5-E68C-4B99-A6DD-D7EAE5A1D238}, package: DummyInstallationPackageId 
[1A44:1E54][2014-02-24T17:47:22]i301: Applying execute package: {f1d57671-5e3d-4be7-908f-5a47e72737d9}, action: Uninstall, path: C:\ProgramData\Package Cache\{f1d57671-5e3d-4be7-908f-5a47e72737d9}\BootstrapperSetup.exe, arguments: '"C:\ProgramData\Package Cache\{f1d57671-5e3d-4be7-908f-5a47e72737d9}\BootstrapperSetup.exe" -uninstall -quiet -burn.related.upgrade' 
[2870:21C0][2014-02-24T17:48:54]i319: Applied execute package: {f1d57671-5e3d-4be7-908f-5a47e72737d9}, result: 0x0, restart: None 
[2870:21C0][2014-02-24T17:48:54]i399: Apply complete, result: 0x0, restart: None, ba requested restart:  No 
[2870:21C0][2014-02-24T17:48:55]i500: Shutting down, exit code: 0x0 

समस्या: चुपचाप अनइंस्टॉल करने के बजाय, यह अनइंस्टॉल डायलॉग प्रदर्शित करेगा। और अगर मैं अनइंस्टॉल पर क्लिक करता हूं, तो यह 1.0.0.0 को अनइंस्टॉल कर देगा और फिर एप्लिकेशन को 1.0.0.1 में अपग्रेड कर दिया जाएगा।

प्रश्न: इसे अपने कमांड लाइन तर्कों को कैसे समझें और अनइंस्टॉल संवाद बॉक्स दिखाए बिना प्रक्रिया कैसे करें?

मैं Wix 3.7 स्रोत से WixBA प्रोजेक्ट में भी परामर्श लिया था, लेकिन इसकी कमांड लाइन हैंडलिंग केवल InstallFolder तर्क का प्रबंधन कर रही है।

मैं वास्तव में किसी भी मदद की सराहना करता हूं, क्योंकि यह अपग्रेड परिदृश्य मेरे बूटस्ट्रैपर परियोजना को ब्लॉक कर रहा है।

बहुत बहुत धन्यवाद।


संकेत @ जॉन के लिए धन्यवाद यह आपके संकेत की सहायता से काम किया डायलॉग (प्रपत्र दृश्य) को लॉन्च करने से पहले मैं रन () में जो जोड़ा है:

if (Command.Display != Display.Full && Command.Action == LaunchAction.Uninstall)
{
   //MessageBox.Show("Let's do Uninstall silentley ");
   MyViewModel.PlanAction(LaunchAction.Uninstall);
}

बीटीडब्ल्यू, मेरे मामले में, कमांड। डिस्प्ले प्रदर्शन था। एम्बैडेड, जो व्यवहार की अपेक्षा की जाती है

मैंने वास्तव में आपकी टिप की सराहना की है एक बार फिर धन्यवाद।





burn