首先,您可能需要考虑您的文档作者将他的文档放在 TFS 中。您可以授予他对单独文件夹或项目的访问权限,而无需授予对您的源代码的访问权限。这样做的好处是:
- 一切都在源代码控制中。放在网络文件夹中的文件很容易放错地方或损坏,并且您没有更改它们的历史记录。任何项目的理想情况是,与项目相关的所有内容都在源代码控制中捕获,因此您可以在需要时提取完整的历史版本。
- 您可以将文档映射到构建服务器上的不同本地文件夹,这样只需执行源代码的“get”即可自动将文档准确复制到需要的位置。
缺点是您可能需要额外的 CAL 才能让他这样做。
另一种(更费力的)方法是让他保存到网络位置,并让开发人员定期将新文件检查到 TFS 中。如果文档不经常更新,这可能是一个可以接受的折衷方案。
但是,如果您希望在构建期间从网上复制文档,您可以使用 MSBuildCopy
命令之一(您已经知道),或者您可以使用Exec
. 复制命令使用起来更复杂,因为它们通常填充有从其他构建目标的输出生成的文件名列表,并且通常与解决方案相关的路径名一起使用。但是,如果您对 DOS 命令(xcopy/robocopy)感到满意,那么您可能会发现使用 Exec 运行 xcopy/robocopy 命令要容易得多。然后,您可以在 MSBuild 环境之外“开发”和测试 xcopy 命令,然后将其粘贴到 MSBuild 脚本中,确信它会起作用 - 比在完整构建过程中试用复制设置要容易得多。
Exec记录在这里。该示例很好地显示了如何执行您想要的操作,但在您的情况下,您可能只需将 Command 属性替换为您想要使用的整个 xcopy/robocopy 命令(甚至是批处理文件的名称),这样您就不会了t 需要设置 ItemGroup 等。