我有8个vms,每个都有产品代码。我创建了一个应用程序,使用它可以触发使用mstest远程运行的encodeui自动化。现在的问题是,每次我必须在所有8个vms上复制并粘贴最新的dll来运行最近更新的代码,并且从本地机器到vm的传输文件需要像永恒一样通过网络复制。
有没有办法创建批处理文件,我可以从tfs服务器下载最新代码,然后在每个虚拟机上构建我的codedui测试代码?
我知道获取并且msbuild可以用于此但我不知道如何正确使用它,因为从服务器获取最新信息会导致冲突,需要在构建解决方案之前先解决。
有没有办法在执行get操作时使用命令行替换整个解决方案?
有没有更好的方法来解决我的问题。
谢谢!
答案 0 :(得分:1)
如果您想要替换整个解决方案并从头开始构建,我建议您删除该文件夹然后获取它:
rd /s MySolutionFolder
tf get MySolutionFolder
但是,这当然需要一些时间。
除非您正在编辑VM上的文件,否则不应该触发任何冲突。如果您正在编辑文件,则可以结合使用tf get和tf resolve来处理这些问题。你可以使用这样的东西来忽略任何冲突并获取服务器版本。
tf get MySolutionFolder /recursive /noprompt
tf resolve /auto:taketheirs
答案 1 :(得分:0)
您还可以使用Team Foundation Power Tools(link to tfpt)。这是一个非常有用的小实用程序=)。特别是,如果要确保工作区与TFS相同,可以使用:
tfpt scorch /diff /deletes /recursive /noprompt
除非您想检查MD5差异而不仅仅是只读位(这可能还取决于服务器/本地工作空间),否则您可能不需要/diff
。在这种情况下,/recursive
可能也没有做任何事情,因为您没有指定根文件夹。没关系,因为我觉得你想把它应用到整个工作区。
我相当肯定你必须从Visual Studio Dev Prompt中调用它。您可以在批处理文件中添加一行,如:
call "C:\Program Files\Microsoft Visual Studio 2008\VC\vcvarsall.bat" x86_amd64
请参阅此SO帖子:How to create a Batch File for Visual Studio Command Prompt
Mikael的帖子也是一个很好的答案,因为我的答案对解决冲突没有帮助。我的回答更多的是擦除所有东西并恢复它(根据需要)。