這是一個窗體應用程序,它與NITGEN FINGKEY(指紋掃描儀)COM NBioBSPCOMLib.dll連接。我將他們的dll添加爲生成\ obj \ Debug \ Interop.NBioBSPCOMLib.dll的參考。 Project-> Build-> Platform目標位於x86中。當我創建設置嚮導時,我按照以下步驟操作:Windows安裝程序設置與COM Dll
- 確保應用程序的目標是正確的平臺x86。
- 創建安裝嚮導項目時,請不要包含源文件和調試文件。
- 創建安裝嚮導項目後,右鍵單擊創建的項目並單擊屬性。
- 點擊先決條件,然後在指定安裝位置的先決條件中選擇「從與我的應用程序相同的位置下載先決條件」。點擊確定。
- 在目標機上的文件系統中,添加特殊文件夾並選擇「Program Files文件夾」。
- 單擊應用程序文件夾,右鍵單擊(appname)的主輸出(活動),然後選擇「從應用程序的主輸出創建快捷方式」。重新命名文件。然後將n拖放到「Program Files Folder」中。
- 執行#6,而是將n拖放到用戶桌面。
- 執行#6,而是將n拖放到用戶的程序菜單。
- 右鍵單擊應用程序文件夾並選擇屬性。爲AlwaysCreate選擇true。
- 爲Program Files文件夾,用戶桌面和用戶的程序菜單執行#8操作。
- 在應用程序文件夾中右鍵單擊並選擇添加文件。選擇interop.NBioBPSCOMlib.dll並將其屬性註冊設置爲vsdrfCOM。
- 在應用程序文件夾中右鍵單擊並選擇添加文件。選擇NBioBSPCOMLib並將其屬性寄存器設置爲vsdrfCOM。
- 建設項目。
當我在Windows 7中安裝此應用程序時,該應用程序工作。但是當我在XP SP 3中安裝它時,我得到「嘗試讀取或寫入受保護的內存,這通常表示其他內存已損壞。」例外。
我添加COM DLL的方式有什麼問題嗎?
最新通報
我移植應用程序的.NET Framework 4.0。我添加了dll作爲參考,設置嵌入式互操作類型:true。創建安裝程序安裝程序,而無需手動添加應用程序文件夾中的dll。現在我得到這個錯誤:「system-runtime-interopservices-comexception-0x80040154」。我發現從其他一些帖子:link是不是在註冊表中,但指紋的驅動程序安裝程序不應該做這部分?
我試圖手動在dll上做一個regsvr32,但它只是說應用程序遇到問題,需要關閉。當我註冊dll時,comexception會返回。
即時通訊不知道什麼是問題,但您可以嘗試通過從安裝程序生成日誌文件來獲取有關該錯誤的更多詳細信息。使用'msiexec/i yourMSI.msi/l * v logfile.log'安裝生成的msi。 – weberik
我在日誌文件中尋找什麼? –
錯誤來自哪裏,即時提問,因爲我不知道它的com註冊表 – weberik