1

IE7+用の.NET4.0ベースのActiveXコントロールを作成しています。キーリーダーデバイスとのインターフェイスを管理する必要があります。私はそれを「行う方法」に関するいくつかの素晴らしいチュートリアルと記事に従い、現在はうまく機能しています。

私の問題は、自分のコントロールの他のバージョンを展開したいと思ったときに始まりました。

セットアップ展開プロジェクトと.CABのcabarcでVS2010を使用しています。1.0.0.0バージョンはうまくいきました。現在、1.0.2.0バージョンを機能させたいのですが、それはうまく機能していますが、IEは常にインストールを要求します。何回も何回も。

私がしたこと:

1:AssemblyInfoVersion.csをバージョン1.0.2.0に変更しました

2:バージョンに応じて.infファイルを1.0.2.0に変更しました

3:.msiバージョンを1.0.2に変更しました

そして、HTMLページのOBJECTタグを#version=1,0,2,0に変更しました

これまでのところ元気です。インストールされています!「プログラムのアンインストール」で確認できます。コントロールのバージョンは1,0,2です。すばらしいですが、IEは、ページを開くたびにダウンロードしてインストールすることを望んでいます。

Excelに接続されたスレッドを見ました:VB.NETで記述されたExcel用のCOMサーバーをインストールして自動化サーバーリストに登録するにはどうすればよいですか?

そして、レジストリ内の何かを変更する必要があるという有用な情報を入手しました。そこで検索を行ったところ、classIdをHKLM \ SOFTWARE \ Wow6432Node \ Classes \CLSID{GUID}の下に配置しました。

ここに次のサブキーがあります。InstalledVersion実装済みカテゴリInprocServer32ProgId

InstalledVersionの部分で、バージョンがまだ1,0,1,0であることがわかったので、嬉しかったです。1,0,2,0に変更しましたが...動作しませんでした。私はレジストリを調べましたが、InstalledVersionは1,0,2,0です。.dllのバージョンは1,0,2,0です。インストールされているコントロールのバージョンは1,0,2です。InprocServer32の下には、3つすべての1,0,0,0があります。1,0,1,0; 1,0,2,0バージョン。そしてもちろん、HTMLコードではバージョンも1,0,2,0です。

(私のマシンは64ビットWin7、IE9です)

誰かがこれを手伝ってくれるでしょうか、私が逃したことは?

このシナリオ全体に関するその他の問題:最初のインストールでバージョンが増加した後、開発マシンは問題なく再起動します。どのような設定でこの動作を実現できるかわかりますか?

アップデート:

問題は解決しました。このせいで私はちょっと盲目か少し疲れています。しかし、この問題は将来にとって重要かもしれません。

最初に問題に関する要約:新しいバージョンがデプロイされた後(クライアントに適切にインストールされた後)、IEは常にそのバージョンのインストールを提案していました。

問題の原因はレジストリにあります。InstalledVersion(Default)レジストリキーに厳密なバージョン番号が含まれている必要があります。

ここでは非常に特殊なケースがありましたが(原因はまだわかりません)、SubKey InstalledVersionの下に(デフォルト)のエントリが2つありました。最初のものは空で、2番目のものは厳密な値を含んでいました。最初のものは削除できませんでしたが、2番目のものだけを削除しました。最初の(デフォルト)を変更した後、すべてが機能しました。

4

2 に答える 2

0

自動再起動の2番目の問題も解決しました。

このスレッドは役に立ちました:サイレントモードまたはパッシブモードのMSIインストーラーは、ユーザーにプロンプ​​トを表示せずにコンピューターを自動的に再起動します

このフラグがないと、ウィンドウは問題なく自動的に再起動するため、/qn /norestartまたは/promptrestartを呼び出しの最後に追加する必要があります。msiexec

誰かが同様の問題を抱えている場合、私の場合の解決策は次のとおりです。

[RunSetup]
run="""msiexec.exe""" /i """%EXTRACT_DIR%\KeyReaderEngineInstaller.msi""" /qn /promptrestart
于 2012-06-06T09:46:52.643 に答える
0

Microsoft Documentatationによると:

/promptrestart
オプションを再起動する前にプロンプ​​トを表示します。インストールを完了するには再起動が必要であるというメッセージを表示し、システムを今すぐ再起動するかどうかをユーザーに尋ねます。このオプションは、/quietオプションと一緒に使用することはできません。

/ qn/norestartまたは/promptrestartのいずれかを使用できます。私の場合、運用システム全体ではなく、IEだけを再起動する必要がありました。したがって、私は/ qn/norestartを使用します

于 2013-01-29T09:34:29.987 に答える