Что делает элемент компиляции / сборок web.config?

У меня была проблема, когда, работая над новым проектом MVC, как только я добавилHtml.Partial("Name") к моему_Layout.cshtml страница, ASP.NET выдает это исключение при загрузке страницы:

ошибка CS0012: тип 'System.Object» не в ссылочной сборке определяется. Добавить ссылку на сборку "System.Runtime, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a " добавлено.

Исправление заключается в том, чтобы добавить это кweb.config, элемент компиляции: I '

  
    
  

Я хотел бы знать, почему это решает проблему.

Какие'Странно, что новое приложение MVC I 'м использование имеет нагрузкуWebForms ASPX страницы, которые работают удовольствие. Я'мы скопировали тонну наследстваWebForms вещи в этот новый проект MVC, акров кода, и все работает, и безHtml.Partial вызов, даже мой MVC вид рендеринга.

Так что же происходит на Земле? Что делает этот конфиг и почему нетт нормальных ссылок на проект и целевых настроек фреймворка достаточно?

Ответы на вопрос(4)

Обнаружена точно такая же ошибка после перехода на VS 2017 & C # 7.1 и добавление ссылок на System.ValueTuple в мой .NET 4.6 ASP.NET проект

Проблема решенаактивация Roslyn в проектах ASP.NET без возни с ссылками в web.config

Дополнительным преимуществом этого является то, что вы можете использовать новые функции C # на страницах aspx и представлениях MVC

Я столкнулся с подобной ситуацией. У меня был проект MVC с Unity. Проект был нацелен на .Net версии 4.5.1, но на моем сборочном компьютере отсутствовала папка 4.5.1 в папке C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework.NETFramework.

Итак, что решило мою проблему, было скопировать папку v4.5.1 с моего компьютера разработчика на компьютер сборки.

Вы можете найти ссылку на оригинальный ответВот

Решение Вопроса

Это вызвано отключением и ограничением между временем сборки и средой выполненияASP.NET/MVC проект. Большая часть кода в веб-проекте компилируется во время сборки (т.е. F5) за исключением представлений (обабритва и встроенныйASPX код), которые создаются динамически во время выполнения (т. е. в IIS).

По большей части, мы пытаемся сделать эти две средыименно так то же самое, и вы, как правило, не заметите никакой разницы. К несчастью. вы'мы столкнулись с одним из тех случаев, когдаявляется разница и тыНам нужно было вручную добавить ссылку, чтобы время выполнения имитировало время сборки.

Какие'происходит то, что вы, вероятно, зависите от переносимой библиотеки (предположительно,Microsoft.Net.Http).Портативные библиотеки немного отличаются от обычных библиотек, и нам нужны дополнительные ссылки, чтобы сделать компилятор счастливым. Во время сборки мы обнаруживаем зависимость от переносимой библиотеки и автоматически добавляем все ссылки наC:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades, К сожалению, среда выполнения несделать это, и вам нужно вручную добавить эти ссылки, пока мы не исправим это в будущем выпуске.

Для дальнейшего использования вы можете просто взять следующий раздел и вставить его непосредственно в Web.Config (это представляет собой снимок для 4.5):

 
      
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
      
    
 John Tseng27 нояб. 2016 г., 20:01
Мне пришлось добавить это в тег компиляции, который уже существовал в Views / Web.config
 Silvos12 сент. 2018 г., 12:28
Ссылки в web.config по-прежнему необходимы на 2018 году, когда вы вызываете код из PCL в скомпилированном файле времени выполнения (ASPX, ASCX, ...). (протестировано с установленной WebForms ASP.Net 4.7. VS 2017 15.8.3 и Microsoft.CodeDom.Providers.DotNetCompilerPlatform v 2.0.0)
 Gutemberg Ribeiro29 янв. 2015 г., 00:06
У меня точно такая же проблема, но на этот раз это не приложение MVC. Вместо этого это рабочая роль Azure, в которой размещается приложение Workflow, и когдаm загружает рабочий процесс из определения byte []. Я'Мы также разместили вопрос здесь:stackoverflow.com/questions/28198348/... какие-нибудь подсказки? В APP.config нет тега компиляции :(
 Luke Puplett13 нояб. 2013 г., 13:10
Спасибо, Дейв, и извиняюсь за то, что взял тиканье, чтобы отметить твой ответ.
 Teoman shipahi18 сент. 2016 г., 20:28
Когда вы говорите, что это будет исправлено в следующем выпуске, так что все эти ссылки будут удалены обновлением? Или мы должны удалить их вручную?
 damtur09 апр. 2018 г., 16:30
Где мы можем найти снимки для версий, отличных от 4,5, например 4.5.1? Где можно найти информацию о том, какие исправления планирует MS в отношении этой проблемы и когда их ожидать?

В Visual Studio 2017 MVC.RAZOR исправлено добавление этого в раздел web.config веб-приложения: здесь приведен фрагмент моего Web.Config сразу после узла system.web:


    
    
    
      
    
  
    

Ваш ответ на вопрос