使用Visual Studio 2012 RC的MVC 4 / Razor中的可移植类库
由于使用Visual Studio 2012 RC,因此在剃刀视图中使用可移植类库(.net 4.5&metroconfiguration文件)中的类时,会出现HttpCompileException。
例外:(德语翻译成英文,对不起)
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) ...
解决scheme结构
- 可移植类库(.net 4.5&metro profile)
- 公共类User {…}
- MVC 4(.net 4.5)
- 对可移植类库的引用
- 剃刀 – 视图
- @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>
还有一些其他程序集可能还需要引用,具体取决于您的便携式代码使用的是什么types。 您可以在遇到错误时添加每个程序集,也可以在C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades
添加程序集的完整列表。