2

個人証明書ファイル*.cerを生成し、それを使用してCABファイルに署名し、この証明書をWindowsMo​​bile6.5にインストールしました。このCABをデバイスにサイレントインストールしたい。「wceload.exe/silentMyCab.CAB」と呼びます。問題は、/silentスイッチが機能していないことです。/silentスイッチがすべてのプロンプト自体を確認することを期待しているときに、CABのインストールを確認するように求められます。さらに、CABが以前にインストールされている場合は、「以前のバージョンの...がインストールされています...」というダイアログは避けたいと思います。Windows Mobileでそれを行う方法はありますか?レジストリキーHKLM/Software / Apps / My App / Instlを0に設定しようとしましたが、機能しません。どんな助けでも大歓迎です。

よろしく

4

2 に答える 2

1

証明書がインストールされてから実行する前に、ウォームブートを試しましたwceloadか?

/nouiパラメータを使用してコマンドラインに追加してみることができ/silentますが、これはレガシーアプリケーション用であると想定されています。http://msdn.microsoft.com/en-us/library/bb158700.aspx

ただし、信頼できる証明書が必要な場合があります。[HKLM]\Security\Policies\Policies[DWORD]0から[DWORD]1に変更することで、この要件を無効にできます。

も参照してください:

于 2011-04-05T14:24:17.290 に答える
1

私のCABは署名されていませんが、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;
}
于 2011-09-13T05:41:20.140 に答える