TFS2010中MSBuild OutputPath和OutDir的问题

时间:2011-06-28 09:15:11

标签: msbuild tfs2010

我们有一个非常大的解决方案(大约300多个)项目,我们正在尝试通过TFS2010上的MSBuild构建它。 我们可以在所有开发机器上通过MSBuild构建它,并且正在采用TFS。

我们的代码结构如下:

bin\Client
bin\Server
Framework\ClientFramework.csproj
Modules\Module1\Project1
Modules\Module2\Project2
etc.

每个项目都有一个相对的OutputPath,它将代码构建到bin Client或Server目录。例如,Project1.csproj的OutputPath为“.. \ .. \ bin \ Client”。

我们似乎遇到了一个问题,即在TFS MSBuild中将OutDir设置为固定路径:

C:\Builds\MyProject\Binaries\

因此,当解析OutDir

之上的相对OutputPath时,事情变得令人困惑
  • ClientFramework转到C:\ Builds \ MyProject \ Binaries \ .. \ bin \ Client
  • Project1转到C:\ Builds \ MyProject \ Binaries \ .. \ .. \ bin \ Client

我们还有一些Post build事件将一些第三方dll复制到bin文件夹,这些路径也无法正确解析。

我认为我们要解决的问题是将所有内容构建到现有的bin \ Client,bin \ Server结构中,然后将文件夹从bin移动到Binaries。

有关如何实现这一目标或我们应该如何工作的任何想法都表示赞赏,但更新我们现有的项目可能会有问题,因为它可以与VS,开发人员命令行构建和CC.net一起使用。

2 个答案:

答案 0 :(得分:7)

由于这是第一个弹出Google搜索“TFS OutDir”的链接,我必须提供更新的解决方案。我花了一整天的时间玩OutDir,OutputPath,并用TeamBuildOutDir覆盖它们。更好的解决方案是设置MSBuild属性GenerateProjectSpecificOutputFolder。它配备了.NET 4.5。更多信息:http://blog.codeassassin.com/2012/05/10/override-the-tfs-team-build-outdir-property-net-4-5/

答案 1 :(得分:6)