我最近将包含一些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会不会自动尝试构建引用的项目?
感谢任何帮助!
答案 0 :(得分:1)
我需要一些更多的信息来指导你这一点,但在我的脑海中尝试添加
/toolsversion:3.5
到你的msbuild电话。
答案 1 :(得分:0)
我在这个网站上发现了另一篇文章,描述了你完全相同的问题。我也遇到了同样的问题。 MSDN网站上的这个blog描述了问题和解决方法。基本上它是解决方案文件的限制,它不是MSBuild格式,而只是一个奇特的文本文件。而真实的是,需要在项目文件中指定依赖项,而不是解决方案文件。啊...只是阅读它解释它的链接比我的回答好一百倍。