0

我是StackOverflow的新手。請事先請原諒我英文上的錯誤。無法加載程序集。找不到模塊。沒有VisualStudio的電腦

我有以下問題:

我在使用使用反射插件系統VC++/CLI(.NET 4.0)構建的應用程序。所有的插件都是我自己開發的。

每個插件都是在運行時檢測並加載的程序集(dll)。主應用程序和每個插件引用第三個程序集,該程序集僅在負載反射步驟中包含安全模型的類接口。該程序集生成與主應用程序和所有插件相同的文件夾。

問題是:當我在Visual Studio中執行調試(F5)應用程序時,一切正常。此外,當應用程序在VS外執行時,它也可以正常工作。但是,當該應用程序在沒有VS的PC上執行時,出現以下錯誤: 「無法加載文件或程序集」PluginInterface.dll「或其某個依賴項,指定的模塊無法找到」

在主應用程序中第一次加載插件程序集(Assembly :: LoadFrom(filename))時,該錯誤似乎發生。不能確定,因爲正如我所說的那樣,發生錯誤的計算機沒有安裝VS進行調試,否則錯誤不會發生。這一點是應用程序中第一次使用這些程序集。

部署PC都安裝了.NET 4.0和VC++ redist。

這是怎麼發生的?我能做什麼?正如你所看到的,這個問題正在進行部署。

+0

缺少DLL,找出什麼時候沒有任何調試工具可用的最好方法是使用SysInternals的Process Monitor。走到最後的痕跡,你會看到你的應用程序搜索DLL並沒有找到它。 – 2014-10-08 14:07:38

+0

這是一個Debug版本嗎?如果是這樣,它將不會找到Debug運行時DLL,因爲它們不是可再發行的。 – 2014-10-08 14:26:21

+0

它發生在Debug和Release版本中。 – Kinetix 2014-10-08 16:39:29

回答

0

固定!使用Microsoft的「Process Monitor」實用程序,我發現調用/引用級聯中的某些程序集dll被構建爲調試模式(例如,它們調用MSVCRT110D.dll。請參閱「D」?)它們在加載時失敗,導致其調用者/引用者崩潰。必須仔細檢查所有依賴性並構建配置和輸出。沉重的工作......到目前爲止,整個解決方案(兩個解決方案真的)包含52個項目並正在上升。 thnks Hans !!,我已經使用過ProcMon和Dependz,但沒有注意到這個錯誤。你的指點讓我再試一次,而且呃!

相關問題