未能加载文件或程序集“log4net, Version=1.2.10.0, Culture=neutral,是设置错误造成的,解决方法如下:
1、首先输入win+r,在d出的输入框御银尘中输入inetmgr,快速打开iis。
2、然后点击应用程序池,可查看所有程序池。
3、接着选中本项目使用的程序池,右键选搏衡择高级设置。
4、然后在镇禅打开的页面中,看到启用32位应用程序位置为false,修改为true,保存。
5、最后点击项目,右键,重新启动项目,就可以了。
1,在64位 *** 作系统上使用任何版本的MSBuild编译引用了仅32位组件的.Net 3.5的项目;2,使用64位MSBuild编译引用了仅32位组件的项目;
3,使用32位MSBuild编译引用了仅64位组件的项目。
要解决这个问题,可以在解决碰坦方案管理器中,将所有的库的目标平台全部设置为 AnyCPU就可以了。
如果需要最终执行平台是X86只需将最终的执行文件目标平台设置为x86:
这样即可正常编译。
程序最终运行的平台,是根据可执行文件的设置来的,因此库中设置为AnyCPU不会影响到最终程序的运行,运行依然是在x86之下。
但是如果引用的DLL有仅32位的,那这种方法就不行了,解决办法http://support.microsoft.com/kb/2028833,详见MSBuild 4.0 or Visual Studio 2010 may fail to compile a 32-bit application targeted for .Net Framework 3.5, 3.0 or 2.0 on x64 machine。
详细解决步骤如下:
1、关闭所有Visual Studio;
2、以管理员的身份打开VS2010的命令提示窗口;
3、更改目录至"<system_drive>:\Program Files (x86)\Microsoft SDKs\Windows\v<x.xx>\bin\”下面;
4、输入该命令corflags /32bit+ ResGen.exe /斗州force,执行;
5、使用记事本打开<project_name>.csproj文件;
6、在PropertyGroup下添加<ResGenToolArchitecture>Managed32Bit</ResGenToolArchitecture>,保存,关闭退出。
现在在VS2010中重新打开原先的项目,编译通过,可以正确运行了!
步骤做完后就能运行的原因是,此时ResGen就是以32位模式运行了,而不是64位,因此便可以加载标记为仅32位的程序笑销桐集了。代价是——它就再也无法编译标记为仅64位模式的程序集了。
对于该问题,还有另一个解决办法,打开项目属性页面,选择应用程序选项卡,设置目标框架为.NET Framework 4 。(由于框架限制,这个没测试)
解决办法以及步骤:
1、第一步,枯巧生产服务器的是阿里云,WINDOWS2008,需要安装MVC4,链败颤装了.NET4.5.。
2、第二棚败步,在项目中引用 System.Web.Helpers,并将属性设为“复制本地”。
3、发布之后,System.Web.Helpers.dll,拷贝到生产服务器对应的BIN目录,问题就得到解决了。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)