我目前正在使用VS 2010和TFS 2008.在我们的一个解决方案中,我们有一个.csproj文件,其中包含以下内容:
<Target Name="BeforeBuild">
<TransformXml Source="..\..\..\ProjectX\ProjectXWebSite\ProjectXWebSite\Web.config" Transform="..\..\..\ProjectX\ProjectXWebSite\ProjectXWebSite\Web.$(Configuration).config" Destination="..\..\..\ProjectX\ProjectXWebSite\ProjectXWebSite\Web.$(Configuration).config.transformed" />
</Target>
<PropertyGroup>
<PostBuildEvent>xcopy "C:\Source\Projects\ProjectX\ProjectXWebSite\ProjectXWebSite\Web.$(Configuration).config.transformed" "C:\Source\Projects\ProjectX\ProjectXWebSite\ProjectXWebSite\Web.config" /R /Y</PostBuildEvent>
</PropertyGroup>
这在本地构建时工作正常,但TFS在到达<PostBuildEvent>
时失败,因为此路径在构建计算机上不可用。如何让TFS跳过整个“BeforeBuild”或者只是将<PostBuildEvent>
设置为空字符串,以便在VS2010本地构建和通过TFS 2008时构建将成功运行?我已在TFSBuild.proj中尝试设置<Target Name="BeforeBuild" />
,但这不起作用。
答案 0 :(得分:0)
我建议不要在你的项目中使用绝对路径名 - 相对路径会让它们重新定位,这样的头痛就会消失。
即。在构建后的xcopy中,只需将C:\Source\Projects\ProjectX
更改为..\..\..\ProjectX
(你不能总是把你的代码放在C上: - 我不得不将我的代码从C:移到D:或E:由于缺少磁盘空间或安装新驱动器有几次,并且使用相对路径使这个过程变得非常简单。有时候能够在PC上同时拥有源代码的多个副本(不同版本或分支)并且仍然可以构建它们也非常方便全部)