Сборка Team City завершается неудачно после обновления до VS 2010 - PullRequest
1 голос
/ 21 июня 2010

У меня есть проект, который в настоящее время успешно компилируется на моей машине разработки с использованием VS 2010 (предположительно, с использованием MSBUILD v4.0), но он терпит неудачу в MSBUILD v3.5 в Team City (работает на виртуальной машине на основе сервера Win 2003 с .NET 2, 3.5 и 4 установлены). Этот проект был недавно обновлен до 2010 года и в настоящее время терпит неудачу в сборке CI. Я прогуглил это и попробовал все очевидное (плюс несколько вещей, которые не имели смысла), и ничто не влияет на результат.

Проект завершается с ошибкой, подобной этой:

error CS0234: The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?)

Существует множество других проектов в решении, использующих System.Core, System.Data.Linq и System.Xml.Linq, и все они, похоже, компилируются без проблем. Рассматриваемый проект является веб-приложением и имеет следующие настройки в разделе конфигурации / system.web / compilation / сборки:

    <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

Плюс следующее в том же файле:

<system.codedom>
  <compilers>
    <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
      <providerOption name="CompilerVersion" value="v3.5"/>
      <providerOption name="WarnAsError" value="false"/>
    </compiler>
  </compilers>
</system.codedom>

Данный проект, IIRC, единственный проект в моем решении, который является одновременно WebApplication и получает постобработку PostSharp (v1.5). PostSharp настроен в .csproj так:

<PropertyGroup>
  <DontImportPostSharp>True</DontImportPostSharp>
  <PostSharpUseCommandLine>True</PostSharpUseCommandLine>
</PropertyGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(POSTSHARP15)\PostSharp-1.5.targets" />

Я не уверен, как это может быть связано, но это на всякий случай.

Есть идеи, что является причиной этой ошибки или как обойти эту проблему?

ТИА

Ответы [ 2 ]

7 голосов
/ 21 июня 2010

Решено:

Добавление ссылок на файл web.config не имеет смысла, поскольку PostSharp вводит изображение до того, как ASP.NET выполнит какую-либо собственную компиляцию, поэтому отсутствует ссылка на System.Core.ссылка вызывает сбой системы (я не знаю, почему).

Решение состоит в том, чтобы вручную отредактировать файл csproj для терпящего неудачу проекта и вручную добавить ссылку на System.Core в проект.Вы не можете сделать это из обозревателя решений, потому что он запрещает добавлять ссылки, которые должны быть добавлены автоматически MSBUILD.

Все еще не уверен, почему он потерпел неудачу, но, по крайней мере, теперь он компилируетсяи снова проходит тестирование.

0 голосов
/ 21 июня 2010

Вы переключили MSbuild на v4.0 в teamcity? Я не думаю, что вы можете построить проект 2010 с .Net 4.0, используя MSbuild 3.5 на teamcity.

...