我们的C#解决方案有几个文件夹通过构建后事件填充(即它们最初是空的)。
解决方案在本地构建正常,但是在使用TFS构建代理时,文件夹不会显示在已发布的网站文件夹中。
有关如何强制TFS复制文件夹的任何建议吗?
答案 0 :(得分:4)
此处解决了这个问题:publish empty directories to a web application in VS2010 web project
TFS不会执行proj文件的AfterBuild目标。我相信它会执行AfterCompile目标,但这仍然可能无法实现你想要的目标。
我已经使用了包含虚拟文件的方法,即使它很蹩脚也很简单。
我尝试过使用powershell脚本来执行一些有效的发布后任务的方法。
最近,我采用了一个包含补充MSBuild文件的约定,该文件以“.package.proj”结尾,并在我的团队构建模板中添加了一个额外的MSBuild执行活动,在将文件放到放置位置后查找它然后执行它。这为Team Build工作流程提供了一个简单的钩子,而不会让您深入更改特定构建的工作流程。它只是一个包含在查找文件的条件中的附加活动。如果找到,请执行它。
您还可以制作自定义构建模板并使用工作流程活动来执行各种清理任务,但这可能过度,并且会增加构建模板的维护。如果可以的话,最好保持自定义简单,并使其在不需要自定义的构建上不需要“选择退出”配置的方式运行。在自定义模板后,现有的vanilla构建应该按预期继续工作。