更新:在找出导致 ASP.NET/Razor 错误的原因后更新了问题。
我有一个 ASP.NET MVC3 项目,它引用了一个 C++/CLI 项目,该项目配置为编译为 x64,因为它必须在 Windows Azure 中运行(C++/CLI 没有 AnyCPU 设置)。
问题是,一旦我将 C++/CLI 项目的平台设置配置为 x64(在 Build->Configuration Manager 中),构建解决方案,然后打开一个随机视图,我就会收到关于 ASP.NET 尝试加载的警告不正确的格式汇编后跟由 Razor 语法错误导致的一堆错误。
一些随机视图的截图:
日志截图:
主要错误是:
警告:ASP.NET 运行时错误:无法加载文件或程序集“LZGEncoder”或其依赖项之一。试图加载格式不正确的程序。
即使发生这种情况,我仍然可以编译和运行解决方案,并且可以很好地使用引用的 C++/CLI 程序集,所以这不会阻止开发,但它确实很麻烦(尤其是当它阻止 IntelliSense 并且我看不到是否我的 Razor 代码中有任何真正的错误)。
如果我将 C++/CLI 的平台重置为 Win32,那么所有错误都会消失,但是在运行解决方案时,我当然会遇到同样的格式错误,但在我的 MVC3 网页中。
这是 ASP.NET 中的错误还是我忘记配置某些内容?我能够在工作和家里(有和没有 Azure)重现错误,所以我不认为这是我的 VS2010 安装。谢谢。
更新:
现在我创建了一个 C# 包装器,使用 P/Invoke 直接调用 C 库,它工作得很好,所以我什至不再需要 C++/CLI 包装器,但这并不能回答这个问题,所以我会保持开放。
我怀疑这是 MVC3/Razor 或 VS2010 中的一个错误,它们都有新版本即将推出。