2012-06-05 5 views
40

da quando lavoriamo con Visual Studio 2012 RC otteniamo una HttpCompileException quando si utilizza una classe da una libreria di classi portatile (.net 4.5 & profilo metro) all'interno di una vista del rasoio.Libreria di classi portatile in MVC 4/Razor con Visual Studio 2012 RC?

Eccezione: (Tedesco a Inglese tradotto su google, sorry)

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) 
... 

struttura Soluzione:

  • Portable Class Library (.NET 4.5 & profilo metro)
    • pubblico classe User {...}
  • MVC 4 (.net 4.5)
    • riferimento alla Libreria di classi portatile
    • Razor-View
      • @model utente

Poiché Visual Studio 2012 RC aggiungendo sistema di riferimento". Runtime "non è più possibile.

+1

Come soluzione alternativa, è possibile modificare la libreria di classi portatile per il targeting di Silverlight 5 oltre a .NET 4.5 e stile Metro? –

risposta

60

Nel \ file web.config Visualizzazioni, aggiungere il seguente codice nella sezione <system.web>:

<compilation debug="true" targetFramework="4.5"> 
    <assemblies> 
     <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    </assemblies> 
</compilation> 

Ci sono un sacco di altre assemblee potrebbe anche essere necessario fare riferimento, a seconda di quali tipi tuo codice portabile sta usando. È possibile aggiungerne uno quando si verifica l'errore o aggiungere l'elenco completo degli assembly in C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades.

+16

Perché funziona? –

+2

Questo ha risolto un problema simile utilizzando System.Collections.Immutable – aboy021

+0

A seconda di cosa si sta facendo nel progetto, potrebbe anche essere necessario aggiungere la stessa riga alla radice 'Web.Config' – joshcomley