未能加载文件或程序集“SrvCommon, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”
Posted Walter_lee2008
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了未能加载文件或程序集“SrvCommon, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”相关的知识,希望对你有一定的参考价值。
一.在写WINFORM程序的时候
在加载DLL时,出现了如下的异常:未能加载文件或程序集“SrvCommon, Version=1.0.0.0, Culture=neutral,PublicKeyToken=null”或它的某一个依赖项。
试图加载格式不正确的程序。
根本原因为:SrvCommon.DLL文件是X86平台生成的。而你的winform程序是Anycpu平台。
解决方法:SrvCommon.DLL平台改为Anycpu平台。 或者把winform程序改为X86平台使用即可.
二.在写WINDOWS SERVICES程序也遇到相同的问题。
在加载DLL时,出现了如下的异常:未能加载文件或程序集“winCommon, Version=1.0.0.0, Culture=neutral,PublicKeyToken=null”或它的某一个依赖项。
试图加载格式不正确的程序。
问题原因如下:
WINDOWS SERVICES程序是Any CPU,在添加winCommon.DLL引用,由于这个DLL文件平台是X86的导致服务程序不能调用到它。报错如上所示的错误。
解决方法:1.把winCommon项目的平台改为Any CPU重新编译即可。备注:如果winCommon项目引用了其他的XXX.DLL文件,XXX的项目如果也是X86的,那你的服务程序也同样报错 【未能加载文件或程序集“XXX, Version=1.0.0.0, Culture=neutral,PublicKeyToken=null”】
解决方法:2.WINDOWS SERVICES程序的平台改为X86的,这样无论引用什么样平台的DLL,都可以调用,因为低平台是可以调用高的
[X86---->Any CPU(Any CPU--->X86会报错不行的)],其实就是平台的问题.
解决方法:3.留意到如下的框架是.NET Framework 4生成的服务程序,没有勾选首选32位功能(图1所示)
这个功能是在.NET Framework 4.5才有的,如图2,所以在编写服务程序时候,使用.NET Framework 4.5框架就可以解决以上问题,不用考虑平台性。
以上是关于未能加载文件或程序集“SrvCommon, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”的主要内容,如果未能解决你的问题,请参考以下文章