我生成了个人证书文件* .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,但它无法正常工作。 任何帮助表示赞赏。
此致
答案 0 :(得分:1)
您是否在安装证书之后以及运行wceload
之前尝试过热启动?
您可以尝试使用/noui
参数将/silent
添加到命令行,尽管这应该是针对旧版应用程序的。 http://msdn.microsoft.com/en-us/library/bb158700.aspx
但是,您可能需要可信证书。您可以通过将[HKLM]\Security\Policies\Policies
从[DWORD] 0更改为[DWORD] 1来禁用此要求。
另见:
答案 1 :(得分:1)
我的CAB没有签名,但以下方法适用于我在WM 6.5上完全安静地安装(没有任何用户界面 - 我在安装过程中显示一个忙碌的光标)。在现有安装的顶部以编程方式(使用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;
}