日期:2014-05-18  浏览次数:20877 次

自动更新出现win32Exception
我在做一个客户端自动更新程序,版本比对侯到更新程序
单独做的更新和下载出现win32Exception 异常
代码片段大家帮忙看下是什么问题
private void endPost(object o, EventArgs e)
  {
  byte[] resultstr = (byte[])o;

  if (resultstr != null)
  {
  Msg msg = Serializer.Deserialize<Msg>(OptBase.byte2stream(resultstr));
  int serviceVersion = msg.version; //服务器版本
  int minorVersion = GetSerial.getMinorVersion(); //当前版本版本
  if (serviceVersion > minorVersion)
  {
  try
  {
  MessageBox.Show("检测到有新版本发布了,是否需要更新!", "信息提示", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button3);
  System.Diagnostics.Process.Start("update.exe", GlobParams.baseURL); //执行这出现异常
  Application.Exit(); 
  }
  catch(Exception ex)
  {
  throw new Exception("升级失败了,原因是:" + ex.Message,ex);
  }
  }
  else
  {
  //当前版本小于服务端版本
  Status ld = new Status();
  ld.ShowDialog();
  ld.Dispose();
  }
  }
  else 
  {
  Status ld = new Status();
  ld.ShowDialog();
  ld.Dispose();
  }
  }

//update.exe代码片段
private string baseURL = "";
  public Form1()
  {
  InitializeComponent();
  baseURL = System.Environment.GetCommandLineArgs().GetValue(1).ToString();
  }


------解决方案--------------------
Exception 的 Message是什么?

有没有InnerException,它的MEssage是什么。
------解决方案--------------------
GlobParams.baseURL这个是什么?

我的做法和你类似,从未出问题,
C# code


            double NewVer = Convert.ToDouble(new BLL.SYS_UpdateManager().GetNewVer());
            double CurrVer = Convert.ToDouble(allensingleton.currentlyVersion);

            if (NewVer > CurrVer)
            {

                DialogResult dr = MessageBox.Show("发现新的版本是否要更新该软件?", "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
                if (dr == DialogResult.OK)
                {
                    Process.Start(@"C:\Program Files\CMS\MesUpdate.exe");
                    this.Dispose();
                    this.Close();
                }
            }

------解决方案--------------------
Console.WriteLine(ex.ToString());

会把InnerException的内容也打印出来。