我正在寻找技巧/建议/见解以帮助调试应用程序加载问题;无法加载文件或程序集...
我遇到此问题的解决方案/项目是从Visual Studio 2008中的工作副本到Visual Studio 2010 Release Candidate的转换。转换过程似乎很成功,并且所有解决方案项目都设置为Framework 4。
唯一的例外是第三方组件(图形处理库),但是任何有问题的DLL可能都会对其他答案有所帮助。
无法加载文件或程序集“ Aurigma.GraphicsMill.DLL”或其依赖项之一。不是有效的Win32应用程序。 (来自HRESULT的异常:0x800700C1)
此异常令人困惑的是附加文本:不是有效的Win32应用程序。
完整的异常堆栈跟踪在PasteBin上进行,但似乎并没有为这个问题提供更多的信息...
到目前为止,我没有尝试过的尝试:
简单清理,重建,重新启动Visual Studio 2010 RC的组合。
删除并重新添加有问题的DLL。
在相关的DLL上将“复制本地”切换为true和false。
确认在“成功构建”之后,有问题的DLL出现在bin \ debug文件夹中。
检查对问题DLL的任何不必要的引用(找不到)。
有问题的DLL的关联许可证文件与它在同一目录中。
我也没有运气碰到任何调试器断点在应用程序负载。
最佳答案
我发现此问题的原因是,因为您已切换到.net v4,所以您现在正在IIS7中专门为asp.net v4使用新的应用程序池(该池本身称为“ ASP.NET v4.0” )
在应用程序池的高级设置部分中,将“启用32位应用程序”设置为true,您的问题DLL现在将按预期加载。
显然,如果您的Web应用程序具有自己的应用程序池,则应该执行相同的操作。
如果您使用的是Windows Server 2008(不是R2),请参见this post on how to assign correct permissions for your application pool identity