Подтвердить что ты не робот

Портативная библиотека классов в MVC 4/Razor с Visual Studio 2012 RC?

после работы с Visual Studio 2012 RC мы получаем исключение HttpCompileException при использовании класса из переносимой библиотеки классов (.net 4.5 и профиля метро) в режиме бритвы.

Исключение: (немецкий на английский, переведенный на google, извините)

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 и профиль метро)
    • public class User {...}
  • MVC 4 (.net 4.5)
    • Ссылка на портативную библиотеку классов
    • Бритва-View
      • @model Пользователь

Так как Visual Studio 2012 RC добавление ссылки "System.Runtime" больше не возможно.

4b9b3361

Ответ 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.