我们有一个非常大的解决方案(大约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时,事情变得混乱
我们还有一些Post build事件将一些第三方dll复制到bin文件夹,这些路径也无法正确解析.
我认为我们要解决的问题是将所有内容构建到现有的bin\Client,bin\Server结构中,然后将文件夹从bin移动到Binaries.
关于如何实现这一点或我们应该如何工作的任何想法都值得赞赏,但更新我们现有的项目可能会有问题,因为它可以与VS,开发人员命令行构建和CC.net一起使用.
由于这是第一个通过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/
我在MSDN上找到答案:http://msdn.microsoft.com/en-us/library/ff977206.aspx
| 归档时间: |
|
| 查看次数: |
15571 次 |
| 最近记录: |