TFS2010中MSBuild OutputPath和OutDir的问题

Dav*_*haw 7 msbuild tfs2010

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

我们的代码结构如下:

bin\Client
bin\Server
Framework\ClientFramework.csproj
Modules\Module1\Project1
Modules\Module2\Project2
etc.
Run Code Online (Sandbox Code Playgroud)

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

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

C:\Builds\MyProject\Binaries\
Run Code Online (Sandbox Code Playgroud)

因此,当解析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一起使用.

Cam*_*art 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/


Dav*_*haw 6

我在MSDN上找到答案:http://msdn.microsoft.com/en-us/library/ff977206.aspx

  • 你能详细说说吗?只是发布链接无助于未来的访问者; 解释该链接如何具体解决您的问题. (8认同)