带有 Visual Studio 2012 RC 的 MVC 4 / Razor 中的可移植类库?

Posted

技术标签:

【中文标题】带有 Visual Studio 2012 RC 的 MVC 4 / Razor 中的可移植类库?【英文标题】:Portable Class Library in MVC 4 / Razor with Visual Studio 2012 RC? 【发布时间】:2012-06-09 11:52:19 【问题描述】:

自从使用 Visual Studio 2012 RC 以来,我们在 razor 视图中使用可移植类库(.net 4.5 和 Metro 配置文件)中的类时会收到 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)
...

解决方案结构:

便携式类库(.net 4.5 和 Metro 配置文件) 公共类用户 ... MVC 4 (.net 4.5) 对可移植类库的引用 剃刀视图 @model 用户

由于 Visual Studio 2012 RC 无法再添加引用“System.Runtime”。

【问题讨论】:

作为一种解决方法,除了 .NET 4.5 和 Metro 风格之外,您能否将可移植类库更改为面向 Silverlight 5? 【参考方案1】:

在 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 中添加程序集的完整列表。

【讨论】:

这解决了我使用 System.Collections.Immutable 的类似问题 根据您在项目中所做的工作,您可能还需要将同一行添加到根Web.Config @LukePuplett 有点晚了,但这里有一个很好的解释 lyalin.com/2014/04/25/… @WetNoodles 谢谢。有趣的是,如果您按照博客中的链接返回我的问题。

以上是关于带有 Visual Studio 2012 RC 的 MVC 4 / Razor 中的可移植类库?的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio 2012 RC 中,如何调试 javascript IntelliSense 扩展?

Visual Studio 2012 RC 中RC表示什么意思

C++ 中的 XAML 桌面应用程序(Visual Studio Ultimate 2012 RC)

Microsoft Visual Studio 2012 RC C++ IntelliSense 错误

如何修复 Blend for Visual Studio 2012 RC 中的新项目空列表?

在 Visual Studio 2012 中,如何将资源文件 (.rc) 与 c ++ dll 链接