在加載DLL時,,出現(xiàn)了如下的異常:未能加載文件或程序集“SrvCommon, Version=1.0.0.0, Culture=neutral,PublicKeyToken=null”或它的某一個依賴項,。
試圖加載格式不正確的程序。
根本原因為:SrvCommon.DLL文件是X86平臺生成的,。而你的winform程序是Anycpu平臺,。
解決方法:SrvCommon.DLL平臺改為Anycpu平臺。 或者把winform程序改為X86平臺使用即可.
二.在寫WINDOWS SERVICES程序也遇到相同的問題,。
在加載DLL時,,出現(xiàn)了如下的異常:未能加載文件或程序集“winCommon, Version=1.0.0.0, Culture=neutral,PublicKeyToken=null”或它的某一個依賴項。
試圖加載格式不正確的程序,。
問題原因如下:
WINDOWS SERVICES程序是Any CPU,在添加winCommon.DLL引用,由于這個DLL文件平臺是X86的導致服務程序不能調(diào)用到它,。報錯如上所示的錯誤,。
解決方法:1.把winCommon項目的平臺改為Any CPU重新編譯即可,。備注:如果winCommon項目引用了其他的XXX.DLL文件,XXX的項目如果也是X86的,,那你的服務程序也同樣報錯 【未能加載文件或程序集“XXX, Version=1.0.0.0, Culture=neutral,PublicKeyToken=null”】
解決方法:2.WINDOWS SERVICES程序的平臺改為X86的,,這樣無論引用什么樣平臺的DLL,都可以調(diào)用,,因為低平臺是可以調(diào)用高的
[X86---->Any CPU(Any CPU--->X86會報錯不行的)],,其實就是平臺的問題.
解決方法:3.留意到如下的框架是.NET Framework 4生成的服務程序,沒有勾選首選32位功能(圖1所示)
這個功能是在.NET Framework 4.5才有的,,如圖2,,所以在編寫服務程序時候,使用.NET Framework 4.5框架就可以解決以上問題,,不用考慮平臺性,。