Pytanie w sprawie .net-4.5, portable-class-library, asp.net, c#, razor – Przenośna biblioteka klas w MVC 4 / Razor z Visual Studio 2012 RC?

40

Od czasu pracy z Visual Studio 2012 RC otrzymujemy wyjątek HttpCompileException podczas używania klasy z przenośnej biblioteki klas (.net 4.5 i profil metra) w widoku maszynki.

Wyjątek: (tłumaczenie z niemieckiego na angielski na google, przepraszam)

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

Struktura rozwiązania:

Przenośna biblioteka klas (.net 4.5 i profil metra)publiczna klasa Użytkownik {...}MVC 4 (.net 4.5)Odniesienie do przenośnej biblioteki [email protected] model użytkownika

Od czasu dodania odwołania do Visual Studio 2012 RC „System.Runtime” nie jest już możliwe.

Aby obejść ten problem, czy możesz zmienić bibliotekę klas przenośnych tak, aby kierowała na Silverlight 5 oprócz stylu .NET 4.5 i Metro? Daniel Plaisted

Twoja odpowiedź

1   odpowiedź
60

W pliku Widoki Web.config dodaj następujący kod pod adresem<system.web> Sekcja:

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

Istnieje kilka innych zestawów, które możesz również potrzebować, w zależności od typów używanych przez Ciebie przenośnych kodów. Możesz dodać każdy z nich, gdy napotkasz błąd, lub dodać pełną listę złożeńC:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades.

W zależności od tego, co robisz w swoim projekcie, może być konieczne dodanie tej samej linii do katalogu głównegoWeb.Config joshcomley
To rozwiązało podobny problem dla mnie przy użyciu System.Collections.Immutable aboy021
Dlaczego to działa? Luke Puplett
@LukePuplett trochę późno, ale oto dobre wyjaśnienielyalin.com/2014/04/25/… Wet Noodles
@WetNoodles Dzięki. Zabawne, jeśli podążysz za linkiem na blogu, aby SO to moje pytanie. Luke Puplett

Powiązane pytania