2013-01-09 149 views
1

這是一個窗體應用程序,它與NITGEN FINGKEY(指紋掃描儀)COM NBioBSPCOMLib.dll連接。我將他們的dll添加爲生成\ obj \ Debug \ Interop.NBioBSPCOMLib.dll的參考。 Project-> Build-> Platform目標位於x86中。當我創建設置嚮導時,我按照以下步驟操作:Windows安裝程序設置與COM Dll

  1. 確保應用程序的目標是正確的平臺x86。
  2. 創建安裝嚮導項目時,請不要包含源文件和調試文件。
  3. 創建安裝嚮導項目後,右鍵單擊創建的項目並單擊屬性。
  4. 點擊先決條件,然後在指定安裝位置的先決條件中選擇「從與我的應用程序相同的位置下載先決條件」。點擊確定。
  5. 在目標機上的文件系統中,添加特殊文件夾並選擇「Program Files文件夾」。
  6. 單擊應用程序文件夾,右鍵單擊(appname)的主輸出(活動),然後選擇「從應用程序的主輸出創建快捷方式」。重新命名文件。然後將n拖放到「Program Files Folder」中。
  7. 執行#6,而是將n拖放到用戶桌面。
  8. 執行#6,而是將n拖放到用戶的程序菜單。
  9. 右鍵單擊應用程序文件夾並選擇屬性。爲AlwaysCreate選擇true。
  10. 爲Program Files文件夾,用戶桌面和用戶的程序菜單執行#8操作。
  11. 在應用程序文件夾中右鍵單擊並選擇添加文件。選擇interop.NBioBPSCOMlib.dll並將其屬性註冊設置爲vsdrfCOM。
  12. 在應用程序文件夾中右鍵單擊並選擇添加文件。選擇NBioBSPCOMLib並將其屬性寄存器設置爲vsdrfCOM。
  13. 建設項目。

當我在Windows 7中安裝此應用程序時,該應用程序工作。但是當我在XP SP 3中安裝它時,我得到「嘗試讀取或寫入受保護的內存,這通常表示其他內存已損壞。」例外。

我添加COM DLL的方式有什麼問題嗎?

最新通報

我移植應用程序的.NET Framework 4.0。我添加了dll作爲參考,設置嵌入式互操作類型:true。創建安裝程序安裝程序,而無需手動添加應用程序文件夾中的dll。現在我得到這個錯誤:「system-runtime-interopservices-comexception-0x80040154」。我發現從其他一些帖子:link是不是在註冊表中,但指紋的驅動程序安裝程序不應該做這部分?

我試圖手動在dll上做一個regsvr32,但它只是說應用程序遇到問題,需要關閉。當我註冊dll時,comexception會返回。

+1

即時通訊不知道什麼是問題,但您可以嘗試通過從安裝程序生成日誌文件來獲取有關該錯誤的更多詳細信息。使用'msiexec/i yourMSI.msi/l * v logfile.log'安裝生成的msi。 – weberik

+0

我在日誌文件中尋找什麼? –

+0

錯誤來自哪裏,即時提問,因爲我不知道它的com註冊表 – weberik

回答

1

耶安裝程序日誌是非常詳細的:)但你可以簡單地搜索它的「NBioBSPCOMLib」,你會看到他在做什麼。在你的情況下,它有點奇怪,該文件被放在C:\ Program Files \ Wikonec \ LTODoctorVerify \ Interop.NBioBSPCOMLib。dll(見1024行和1025行),但後來我們要註冊路徑「file:/// C:/ Users/Jemuel/Documents/Visual Studio 2010/Projects/fingerprint/FingerPrintValidate/bin/Debug/Interop.NBioBSPCOMLib .dll「(行1124)被使用。我是對的,如果我認爲windows7是你的開發電腦和winXP沒有視覺工作室的測試機器?

+0

是的,我正在進行部署測試。第一個路徑是因爲我在安裝程序安裝程序中的應用程序文件夾中手動添加了Interop。它引用你提到的後一種路徑。任何想法如何解決這個問題? –

+0

到目前爲止我不知道。你可以發佈安裝程序的項目文件嗎?我應該是一個文本文件,你可以上傳到要點 – weberik

+0

它是.vdproj?如果是這樣,這裏是:[鏈接](https://gist.github.com/4493737) –

相關問題