Я готовлю новое решение ASP.NET MVC 5.1. Я добавляю в пакет NuGet и настраиваю его с помощью Zurb Foundation и т. Д.
В качестве части этого я добавил ссылку на собственный пакет NuGet, который представляет собой Portable Class Library, и я думаю, что это вызывает проблему на сервере сборки.
TeamCity не удается собрать с:
Тип 'System.Object' определен в сборке, на которую нет ссылок. Вы должны добавить ссылку на сборку 'System.Runtime, Version = 4.0.0.0
Первоначально я добавил исправление для той же или аналогичной ошибки при компиляции веб-страниц Razor, это исправление находится в web.config
<compilation ... >
<assemblies>
<add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</assemblies>
</compilation>
Однако проблема не решена.
источник
.vs
, удалило (переименовало) папку после закрытия проекта, снова открыло ее, удалилоweb.config
запись, и теперь она собирается и работает нормально.Добавление ссылки на эту сборку System.Runtime.dll устранило проблему:
Хотя этот файл с таким явным путем не существует на сервере сборки.
Я отправлю больше информации, как только найду документацию по PCL и этим Фасадам.
Обновить
Да, почти ничего на фасадах в интернете.
Google:
источник
Единственный способ, который работал для меня. Добавьте сборку в web.config
источник
Комментарий @ PeterMajeed в принятом ответе помог мне с связанной проблемой. Я не использую переносимую библиотеку, но у меня такая же ошибка сборки при новой установке Windows Server 2012, где я использую TeamCity.
Установка Microsoft .NET Framework 4.5.1 Developer Pack позаботилась об этой проблеме (после отдельной установки MS Build Tools ).
источник
У меня была эта проблема в некоторых решениях на VS 2015 (не MVC, хотя), и даже в том же решении на одной рабочей станции, но не на другой. Начавшиеся ошибки появились после изменения версии .NET на 4.6 и обращения к PCL.
Решение простое: закройте решение и удалите скрытую папку .vs в той же папке, что и решение.
Добавление отсутствующих ссылок, как предлагается в других ответах, также решает проблему, но ошибка остается устраненной даже после повторного удаления ссылок.
Что касается TeamCity, я не могу сказать, так как в моей конфигурации никогда не было проблем. Но убедитесь, что вы сбросили рабочий каталог как часть ваших усилий по отладке.
источник
Это старая проблема, но я столкнулся с ней сегодня, чтобы исправить конвейер сборки на нашем сервере непрерывной интеграции. Добавление
чтобы мой
.csproj
файл решил проблему для меня.Немного контекста: заинтересованный проект - это полноценный проект .Net Framework 4.6.1, без проблем сборки на машинах разработчиков. Проблема появляется только на сервере сборки, который мы не можем контролировать, возможно, из-за другой версии SDK или чего-то подобного.
Добавление предложенного
<Reference
исправило ошибку сборки за счет предупреждения об отсутствии ссылки (желтый треугольник на добавленной записи в дереве ссылок) в Visual Studio.Я надеюсь, что это может помочь людям в подобных сценариях ...
источник
Установите .NET Runtime, а также пакет таргетинга для версии .NET, на которую вы ориентируетесь.
Пакет разработчика - это всего лишь две вещи, связанные вместе, но на сегодняшний день версия 4.6, похоже, отсутствует, поэтому вам придется устанавливать эти две вещи отдельно.
Загрузки можно найти здесь: http://blogs.msdn.com/b/dotnet/p/dotnet_sdks.aspx#
источник
Я также столкнулся с этой проблемой, пытаясь запустить проект ASP .NET MVC после незначительного обновления нашей кодовой базы, даже если он скомпилирован без ошибок:
Наш проект никогда не сталкивался с этой проблемой, поэтому я скептически относился к изменению файлов конфигурации, прежде чем выяснил причину. Из журналов ошибок я смог найти этот подробный вывод компилятора, который указал на то, что действительно происходило:
Очевидно, что новый пакет, добавленный в наш проект, ссылался на более старую версию .NET Framework, вызывая проблему «определения в нескольких сборках» (CS1685), которая приводила к ошибке компиляции представления бритвы во время выполнения.
Я удалил несовместимый пакет (System.Collections.Immutable.dll), и проблема перестала возникать. Однако, если пакет не может быть удален в вашем проекте, вам нужно будет попробовать ответ Baahubali .
источник
На нашем сервере сборки Tfs 2013 у меня была такая же ошибка, в тестовом проекте. с основным веб-проектом, работающим на .Net 4.5.1.
Я установил пакет NuGet System Runtime и добавил ссылку из пакетов \ System.Runtime.4.3.0 \ ref \ net462 \ System.Runtime.dll
Это решило это для меня.
источник
_._
Мне нужно было загрузить и установить Windows 8.0 (а не 8.1) SDK, чтобы ошибка исчезла на моем сервере TeamCity.
https://developer.microsoft.com/en-us/windows/downloads/windows-8-sdk
источник
я добавил System.Runtime.dll в проект bin, и это сработало :)
источник
У меня была эта проблема в решении с проектом веб-API и несколькими проектами библиотеки. Один из проектов библиотеки выполнялся при сборке, с ошибками, которые указывали, что атрибуты Unity не были «допустимыми» атрибутами, а затем одна ошибка говорила, что мне нужно сослаться на System.Runtime.
После долгих поисков, переустановки 4.5.2 Developer Pack и отсутствия работы я решил, что это просто несоответствие версий. Поэтому я посмотрел на свойства каждого проекта, и одна из самых базовых библиотек была нацелена на 4.5, а каждая другая нацелена на 4.5.2. Я изменил это, чтобы также нацелиться на 4.5.2, и ошибки исчезли.
источник
Я копирую файл "C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5.1 \ Facades \ system.runtime.dll" в папку bin производственного сервера, это решает проблему.
источник
установите https://www.microsoft.com/en-us/download/details.aspx?id=49978 пакет разработчика Microsoft .NET Framework 4.6.1 и добавьте эту строку кода в файл Web.config.
источник
Для меня помогла только эта строка кода:
Assembly.Load("System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
источник
Удаление ссылки через диспетчер пакетов Nuget и ее повторное добавление решило проблему для меня.
источник