自从使用 Visual Studio 2012 RC 后,我们在 razor View 中使用可移植类库(.net 4.5 和 Metro 配置文件)中的类时会收到 HttpCompileException。
异常(exception):(德语到英语在谷歌上翻译,抱歉)
System.Web.HttpCompileException (0x80004005):
c:\Users\user\AppData\Local\Temp\Temporary ASP.NET
Files\root\1995167a\126b7c4d\App_Web_index.cshtml.1fbcdbb1.zaniprm5.0.cs(29):
error CS0012: The type 'System.Object' is not in a referenced assembly is
defined. Add a reference to the Assembly "System.Runtime, Version = 4.0.0.0,
Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a" added.
at
System.Web.Compilation.AssemblyBuilder.Compile()
System.Web.Compilation.BuildProvidersCompiler.PerformBuild()
System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath)
...
解决方案结构:
- 可移植类库(.net 4.5 和 metro 配置文件)
- 公共(public)类用户{ ... }
- MVC 4 (.net 4.5)
- 引用可移植类库
- Razor View
- @model 用户
自 Visual Studio 2012 RC 以来,不再可能添加引用“System.Runtime”。
最佳答案
在Views\Web.config文件中,在<system.web>
下添加如下代码部分:
<compilation debug="true" targetFramework="4.5">
<assemblies>
<add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</assemblies>
</compilation>
根据您的可移植代码使用的类型,您可能还需要引用许多其他程序集。您可以在遇到错误时添加每一个,或者在 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades
中添加完整的程序集列表。 .
关于c# - 带有 Visual Studio 2012 RC 的 MVC 4/Razor 中的可移植类库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10897712/