2012-06-05 105 views
1

我正在爲IE7 +編寫基於.NET 4.0的ActiveX控件。我必須用鑰匙閱讀器管理一個界面。我跟着一些關於「如何做」的精彩教程和文章,目前運行良好。部署現有ActiveX控件的新版本

當我想要部署其他版本的控件時,我的問題就開始了。

我正在使用VS2010與安裝部署項目和cabarc的.CAB。 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

我改變了OBJECT標籤在HTML頁面#版本= 1,0,2,0

到目前爲止,一切正常。它已安裝!我可以在「卸載程序」下看到它,該控件的版本是1,0,2!太棒了,但IE仍然希望我每次打開頁面時都要下載並安裝它。

我看到了用Excel連接螺紋:How to get COM Server for Excel written in VB.NET installed and registered in Automation Servers list?

而且我得到了有用的信息有關,我應該在註冊表中更改的東西。我做了一些搜索那裏,我在富爾德我的classid: HKLM \ SOFTWARE \ Wow6432Node \類\ CLSID {GUID}

我這裏有以下子項: InstalledVersion 實現的類別 InprocServer32的 PROGID

我很高興,因爲我看到,在InstalledVersion部分,版本仍然是1,0,1,0。我將其更改爲1,0,2,0 ...並沒有奏效。我通過註冊表,現在無處不在,InstalledVersion是1,0,2,0。 .dll版本是1,0,2,0。已安裝的控件的版本是1,0,2。在InprocServer32下我有全部三個1,0,0,0; 1,0,1,0; 1,0,2,0版本。當然,在HTML代碼中,版本也是1,0,2,0。

(我的機器是64位的Win7,IE9)在此

莫非

任何人的幫助,我錯過了什麼?

整個場景的其他問題:在第一次安裝版本後,我的開發機器重啓時沒有任何問題。你有什麼想法什麼樣的設置可以使這種行爲?

UPDATE:

的問題就迎刃而解了。我有點盲目,或者因爲這個而有點累。 但問題是,5月重要的是,未來:

首先關於這一問題的概述: 後的新版本部署(在客戶端安裝好)的IE總是propting用於安裝的版本。

問題來源在註冊表中。您應該在InstalledVersion(默認)註冊表項中擁有適當的版本號。

我在這裏有一個非常特殊的情況(並且我不知道原因),但是我在SubKey InstalledVersion下有兩個條目(Default)。第一個是空的,第二個包含了價值。我無法刪除第一個,但只能刪除第二個。我改變了第一個(默認)一切工作後發現!

+0

您有可能創建一個名稱爲「(Default)」的regvalue,而不是設置默認reg值(然後給它一個虛擬名稱「(Default)」? http://msdn.microsoft.com/en-us/library/xkfz6802(v=VS.80).aspx – dkackman

+0

感謝您的評論!是的,它也是真的! –

回答

0

自動重啓的第二個問題也解決了。

這個線程幫助:MSI installer with Silent or Passive mode will automatically restart computer without prompt for user sometimes

必須添加/qn /norestart/promptrestart結束的msiexec通話的,因爲如果沒有這個標誌的Windows自動重新啓動本身沒有質疑。

如果有人有一個類似的問題,那麼這裏就是在我的情況下,解決辦法:

[RunSetup] 
run="""msiexec.exe""" /i """%EXTRACT_DIR%\KeyReaderEngineInstaller.msi""" /qn /promptrestart 
0

根據Microsoft Documentatation:重新啓動選項之前

/promptrestart
提示。顯示完成安裝需要重新啓動的消息,並詢問用戶是否立即重新啓動系統。此選項不能與/ quiet選項一起使用。

您可以使用/QN/norestart更新日誌文件或只是/promptrestart。就我而言,只需要重新啓動IE,而不是整個運營系統。因此,我使用/qn/norestart