2014-07-17 77 views
-1

我有它運行Win7上而不是在WinXP(是的,我們仍然有一些人的) 原因是DLL的應用程序:wiaaut.dllAssembly.LoadFrom():該模塊expeted包含集清單

Registeringdll使用regsvr32的作品。但是,首選方法是通過代碼(體力勞動少) 所以我們想用下面的代碼加載&登記上load()大會:

 Dim asm As Assembly = Assembly.LoadFrom(System.Environment.CurrentDirectory & "\WIA\wiaaut.dll") 
     Dim regAsm As RegistrationServices = New RegistrationServices() 
     Dim bResult = regAsm.RegisterAssembly(asm, AssemblyRegistrationFlags.SetCodeBase) 

還在第一線我得到的錯誤:The module was expeted to contain assembly manifest 我試圖解決它與其他在這裏類似的問題:

SO Question 1不是真的了同樣的問題

SO Question 2

  • 我的應用程序的目標框架是4.0(所以沒有問題存在)
  • 改變了我的目標配置到86(還存在問題),或爲此事

SO Question 3沒有實際解決方案的任何其他配置offred

SO QUestion 4沒有答案presnt

......和許多許多......

所以給你所有brianiacs那邊,這裏是我的問題:

  1. 我怎樣才能避免例外,這樣的代碼工作。
  2. 或者有任何其他方法(使用代碼)
+0

從[MSDN](http://msdn.microsoft.com/en-gb/library/windows/desktop/ms630827(V = vs.85)的.aspx),報價「應用程序使用該WIA自動化層API需要Windows Vista或更高版本,不支持早期版本的Windows。「 對不起! – Grim

+0

奇怪,我得到它的手動工作雖然註冊DLL .... – User999999

+0

是啊..很可能,你可以在Windows中擺脫它,而是從代碼做到這一點,像.manifest文件/嵌入視頻需要這些天。我會繼續尋找......雖然我與XP搞砸了一段時間! – Grim

回答

2

這是不可能的,wiaaut.dll是用C語言編寫的非託管COM服務器++註冊在當前機器上的DLL。只有.NET程序集可以用Assembly.Load/From()加載並像這樣註冊。像這樣的COM服務器需要通過他們的DllRegisterServer()入口點進行註冊,通常由Regsvr32.exe調用。

不要把它留給機器所有者來處理,WIA需要正確地註冊,而不僅僅是自動化接口。運行其安裝程序是一項艱鉅的任務。 WIA第2版首次在Vista上發佈,被移植到XP。微軟有一個可用的下載,我注意到它幾個月前已經失蹤。這可能與XP支持被終止有關。對此沒有前途,XP已經完成並結束了。在超級用戶網站上詢問這個安裝程序可能的超出微軟範圍的零散副本。如果遇到麻煩,那麼你不能給微軟打電話,但是不要讓這成爲你的問題的另一個原因。

+0

就像我害怕.....爲什麼哦爲什麼我們的IT基礎設施團隊如期落後......如果感謝您的信息! – User999999

相關問題