CAB安装不成功使用wceload

时间:2015-12-22 10:11:10

标签: c# windows-mobile compact-framework cab

当我运行此应用程序时,我收到一条消息,说明DeviceApplication.CAB安装失败。 我检查了windows目录,发现wceload.exe可用。

我已将cab放在运行当前exe的目录中。

知道怎么做吗?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;

namespace DeviceApplication3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

        }


        public void displayMesage() {    
            LaunchInstaller("DeviceApplication.cab");
        }

        private static bool LaunchInstaller(string cabFile)
        {
            // Info on WceLoad.exe
            //http://msdn.microsoft.com/en-us/library/bb158700.aspx
            const string installerExe = "\\windows\\wceload.exe";

            const string processOptions = "";
            try
            {
                ProcessStartInfo processInfo = new ProcessStartInfo();
                processInfo.FileName = installerExe;
                processInfo.Arguments = processOptions + " \"" + cabFile + "\"";

                Process process = Process.Start(processInfo);
                if (process != null)
                {
                    process.WaitForExit();
                }                                

                return InstallationSuccessCheck(cabFile);
            }
            catch (Exception e)
            {
                MessageBox.Show("Sorry, for some reason this installation failed.\n" + e.Message);
                Console.WriteLine(e);
                throw;
            }
        }

        private static bool InstallationSuccessCheck(string cabFile)
        {
            if (File.Exists(cabFile))
            {
                MessageBox.Show("Something in the install went wrong.  Please contact support.");

                return false;
            }
            return true;
        }


    }
}

1 个答案:

答案 0 :(得分:0)

回答我自己的问题,

因为我在这个过程中给出的路径,

  ProcessStartInfo psi = new ProcessStartInfo(@"Windows\wceload.exe", "/nodelete \"Program Files\\DeviceApplication3\\DeviceApplication.CAB\"");

        Process proc = Process.Start(psi);