升级到VS2010时,MSBuild无法构建引用的项目

时间:2010-12-08 15:41:13

标签: asp.net visual-studio-2010 msbuild web

我最近将包含一些C#代码项目和ASP.net网站项目的.Net 3.5解决方案升级到VS2010(来自VS2008)。它在VS内部构建和运行良好,但是当我尝试使用MSCild 4.0通过TeamCity在我的服务器上构建它时遇到了一些问题。似乎没有构建从网站引用的项目。在升级到VS2010,MSbuild 4.0和Windows SDK 7.1之前,这一切都运行良好。

在我用于从teamcity构建的msbuild脚本中,我已经为网站定义了项目引用,如下所示:

  <ProjectReference Include="..\src\trunk\DataAccess\DataAccess.csproj">
     <Project>{C43242F4-7286-4BEC-9A27-001D6FC14860}</Project>
     <Name>DataAccess</Name>
  </ProjectReference>

当我尝试运行构建脚本时,我收到一条错误消息,说明在尝试将其从引用项目的bin文件夹复制到网站的bin文件夹时找不到dll文件。这是因为引用的项目实际上根本没有构建(项目目录中没有bin文件夹)。

有没有人知道可能导致这种情况的原因?我对MSbuild不是很有经验,所以我可能忽略了一些重要的东西。如果没有项目输出存在,​​MSbuild会不会自动尝试构建引用的项目?

感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

我需要一些更多的信息来指导你这一点,但在我的脑海中尝试添加

/toolsversion:3.5

到你的msbuild电话。

答案 1 :(得分:0)

我在这个网站上发现了另一篇文章,描述了你完全相同的问题。我也遇到了同样的问题。 MSDN网站上的这个blog描述了问题和解决方法。基本上它是解决方案文件的限制,它不是MSBuild格式,而只是一个奇特的文本文件。而真实的是,需要在项目文件中指定依赖项,而不是解决方案文件。啊...只是阅读它解释它的链接比我的回答好一百倍。