2011-03-06 64 views
2

我生成了一个个人证书文件* .cer,并使用它签署了我的CAB文件,并在Windows Mobile 6.5上安装了此证书。我想静静地在设备上安装此CAB。我打电话 “wceload.exe/silent MyCab.CAB”。问题在于/ silent开关不工作 - 我得到提示以确认CAB的安装,而我期望/ silent开关将确认所有提示本身。另外,如果我之前已经安装了CAB,我想避免使用“以前版本的...已安装...”对话框。有没有办法在Windows Mobile上做到这一点?我尝试将注册表项HKLM/Software/Apps/My App/Instl设置为0,但它不起作用。 任何帮助表示赞赏。windows mobile 6.5 CAB签名和wceload/silent问题

问候

回答

1

你尝试过暖启动自安装证书,并在运行之前wceload

您可以尝试使用/silent参数在您的命令行中添加/noui,尽管这应该是针对传统应用程序的。 http://msdn.microsoft.com/en-us/library/bb158700.aspx

但是,您可能需要一个可信证书。您可以通过从[DWORD] 0至[DWORD]改变[HKLM]\Security\Policies\Policies禁用此要求1

还看到:

+0

谢谢,我用手工制作的CER文件签署的CAB。现在,/ silent开关就像一个魅力。谢谢 – cubesoft 2011-04-06 08:49:50

1

了我的车没有签名,但下面的方法对我的作品在WM 6.5到完全静默安装(没有任何UI - 我显示在安装过程中忙碌光标) 。安装以编程方式(使用Process类的c#)在现有安装的顶部执行。

wceload /nodelete /silent "\Storage Card\Blah\Blah.CAB" 

我有点惊讶,因为这里的文档:http://msdn.microsoft.com/en-us/library/bb158700.aspx]说:

如果该.cab文件未签名,并且在调用wceload时指定/ silent或/ noui选项,wceload可能会忽略这些选项。

我想这应该说 '可能会或可能不会忽略这些选项';)

完整的C#代码如下:

Cursor.Current = Cursors.WaitCursor; 

try 
{ 
    using (Process proc = new Process()) 
    { 
     proc.StartInfo = new ProcessStartInfo("wceload", string.Format("/nodelete /silent \"{0}\"", cabFile)); 

     if (proc.Start()) 
     { 
      proc.WaitForExit(); 
     } 
    } 
} 
finally 
{ 
    Cursor.Current = Cursors.Default; 
} 
相关问题