Visual studio 2010 Team City构建在升级到VS 2010后失败

Visual studio 2010 Team City构建在升级到VS 2010后失败,visual-studio-2010,.net-3.5,postsharp,teamcity-5.1,Visual Studio 2010,.net 3.5,Postsharp,Teamcity 5.1,我有一个项目,目前在我的开发机器上使用VS 2010进行编译,可能使用MSBUILD v4.0,但在Team City中的MSBUILD v3.5下失败,该版本运行在基于Win 2003 server w/.NET 2、3.5和4的虚拟机上。此项目最新升级到2010年,现在CI构建失败。我在谷歌上搜索了这些,尝试了所有明显的事情,加上一些没有意义的事情,没有任何影响结果 项目失败,出现一系列错误,如下所示: error CS0234: The type or namespace name 'Li

我有一个项目,目前在我的开发机器上使用VS 2010进行编译,可能使用MSBUILD v4.0,但在Team City中的MSBUILD v3.5下失败,该版本运行在基于Win 2003 server w/.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,而且它们的编译似乎都没有问题。该项目是一个web应用程序,在其配置/system.web/compilation/assemblies部分中具有以下设置:

    <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,它是我的解决方案中唯一一个既为Web应用程序又由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" />
我不确定这有什么关系,但只是以防万一

关于是什么导致了这个错误或者如何解决这个问题,你有什么想法吗


TIA您是否在teamcity上将MSbuild切换到了v4.0?我认为您无法在teamcity上使用MSbuild 3.5使用.Net 4.0构建2010项目。

您在teamcity上是否将MSbuild切换到了v4.0?我认为您无法在teamcity上使用MSbuild 3.5使用.Net 4.0构建2010项目。

将引用添加到web.config文件是毫无意义的,因为PostSharp在ASP.NET自己执行任何编译之前进入图片,因此缺少对System.Core引用会导致系统失败,我不确定原因

解决方案是手动编辑失败项目的csproj文件,并手动向项目添加对System.Core的引用。无法从解决方案资源管理器执行此操作,因为它不允许添加应由MSBUILD自动添加的引用

仍然不知道为什么它一开始就失败了,但至少现在它再次编译并通过了测试。

解决了:

将引用添加到web.config文件是毫无意义的,因为PostSharp在ASP.NET自己执行任何编译之前进入图片,因此缺少对System.Core引用会导致系统失败,我不确定原因

解决方案是手动编辑失败项目的csproj文件,并手动向项目添加对System.Core的引用。无法从解决方案资源管理器执行此操作,因为它不允许添加应由MSBUILD自动添加的引用


仍然不知道为什么它一开始就失败了,但至少现在它再次编译并通过了测试。

Hi Mike,事实上,我选择了将框架保持在3.5版本,并且能够构建我的toolset=4.0文件,就好像它们是toolset=3.5一样。框架根据需要进行自我调整Hi Mike,事实上,我选择将框架保持在3.5版本,并且能够构建toolset=4.0文件,就好像它们是toolset=3.5一样。框架会相应地进行调整