2011-09-29 75 views
0

我使用TFS 2010,2010年VSTFS生成错误当通过TFS调用自定义生成文件的生成定义

我写的,我用本地建立我的解决方案定制的MSBuild PROJ文件。我使用MSBUILD.exe TFSBuild.proj它在我的本地计算机中执行所有操作。 (我有一个叫做“DoMyBuild” taregt揭开序幕构建和做的一切。) 我在DefaultTargets使用该属性如下:

<Project DefaultTargets="DoMyBuild" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> 

我努力地配置此用我用构建定义构建服务器。在构建定义中,在Process - 我配置了'Upgrade Template'并且在构建过程参数中,给出了这个TFSBuild.Proj文件的路径。

理想情况下。我阅读时,TFS应该启动“DoMyBuild”目标。但是,它找不到未定义的'EndToEndIteration'。所以,我相信它仍在做一个我不想要的DesktopBuild。我想用我的自定义目标来启动。这可能吗 ?

任何帮助,非常感谢。

感谢,玛尼

+1

为什么在使用VS2010时将ToolsVersion设置为3.5?如果你想构建VS2010,你应该使用4.0。 –

+0

不太明白。可以用VS2010来解释你的意思。为了清楚起见,我在vs2010中使用团队资源管理器来创建一个新的构建定义,在其中指定我的TFSBuild.proj。 –

+0

如果ToolsVersion设置为3.5,就像在VS2008中构建一样。如果它设置为4.0,它就像在VS2010中构建。 –

回答

1

您的问题进行了讨论here

确保您至少有一个在MSBuild项目中定义的EndToEndIteration目标。

<Target Name="EndToEndIteration" 
Condition=" '$(IsDesktopBuild)'!='true' " 
DependsOnTargets="$(EndToEndIterationDependsOn)" /> 
+0

因此,我是否应该导入导入这个名称空间?Project =“$(MSBuildExtensionsPath)\ Microsoft \ VisualStudio \ TeamBuild \ Microsoft.TeamFoundation.Build.targets”/> –

+0

请按照我发送链接的完整文章。它也有一个完整的实例。 – kroonwijk