asp.net-mvc-3 – 尝试加载64位C/C++LI程序集时出现ASP.NET MVC3
更新:在确定导致ASP.NET/Razor错误的原因后更新了问题.
我有一个ASP.NET MVC3项目,它引用了一个C/C++LI项目,该项目被配置为编译为x64,因为它必须在Windows Azure中运行(C/C++LI没有AnyCPU设置). 问题是,只要我将C/C++LI项目的平台设置配置为x64(在Build-> Configuration Manager中),构建解决方案,然后打开随机视图我收到有关ASP.NET尝试加载的警告格式化程序集不正确,然后是由Razor语法错误引起的一堆错误. 一些随机视图的截图: 日志的屏幕截图: 主要错误是:
即使发生了这种情况,我仍然可以编译并运行解决方案,并且使用引用的C/C++LI程序集就好了,所以这不会阻碍开发,但这是一个真正的麻烦(特别是当它阻止IntelliSense时我无法看到我的Razor代码中有任何真正的错误). 如果我将我的C/C++LI平台重置为Win32,那么所有错误都会消失,但是当运行解决方案时,我得到了相同的错误格式错误,但在我的MVC3网页中. 这是ASP.NET中的错误还是我忘了配置某些东西?我能够在工作和家中(有和没有Azure)重现错误,所以我不认为这是我的VS2010安装.谢谢. 更新: 我怀疑它是MVC3 / Razor或VS2010中的一个错误,两者都有新版本即将问世. 解决方法
我弄清楚导致问题的原因是,C/C++LI dll被编译为x64. ASP.NET运行时似乎并不喜欢这样,只有Win32或AnyCPU平台才能运行,即使代码编译运行也是如此.
C/C++LI项目的唯一2个平台选项是Win32和x64,我需要它是x64,因为它将发布到Azure云,但这会导致这些运行时错误,另一方面Win32会根本不在Azure上运行. 我最终做的是创建一个C#包装器,它使用P / Invoke直接调用我的C库,因为C#项目平台设置可以设置为“AnyCPU”,所以现在错误消失了. 总而言之,如果您在包含Razor代码的解决方案中引用任何类型的项目/ dll,请确保将其编译为AnyCPU或Win32,而不是x64. 感谢大家!我想这是ASP.NET MVC3中的一个错误. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 在MVC中将值从Controller传输到Shared View
- 新浪出输入法了,深蓝词库转换更新到1.3.1——增加对新浪拼
- asp-classic – 用于ASP的“Dim”是什么?
- asp.net – Request.IsAuthenticated永远不会成立
- 我创造了有史以来最糟糕的标签汤(ASP.NET MVC 2)
- asp.net – 关于MVC3中助手的清晰度?
- asp.net-mvc – 在ASP.NET MVC 4中强制同步执行异步操作
- ASP.net MVC – 在区域之间共享部分
- asp.net – 显示为普通html的.cshtml文件
- JSON字符串反序列化成对象_部分属性值反序列化失败