【问题标题】:Getting latest from tfs and then building the solution from a batch file从 tfs 获取最新信息,然后从批处理文件构建解决方案
【发布时间】:2016-03-23 12:51:17
【问题描述】:

我有 8 个 vm,每个都有产品代码。我创建了一个应用程序,使用它可以使用 mstest 远程触发 codedui 自动化运行。现在的问题是,每次我必须在所有 8 个 vm 上复制和粘贴最新的 dll 以运行最近更新的代码,并且从本地机器传输文件到 vm 需要像永恒一样通过网络复制。

有没有一种方法可以创建一个批处理文件,使用它可以从 tfs 服务器下载最新代码,然后在每个 VM 上构建我的 codedui 测试代码?

我知道 tf get 和 msbuild 可以用于此,但我不知道如何正确使用它,因为从服务器获取最新版本会导致冲突,需要在构建解决方案之前先解决冲突。

有没有办法在执行get操作时使用命令行替换整个解决方案?

有没有更好的方法来解决我的问题。

谢谢!

【问题讨论】:

  • 关于 tf.exe GET 命令的文档:msdn.microsoft.com/en-us/library/fx7sdeyf(v=vs.100).aspx
  • 编译的 DLL 有多少 MB/GB?有多少个DLL?是否所有 DLL 每次都更改或通常只有少数更改?是所有的 DLL 大小都一样,还是有几个大的而其余的都很小?
  • 主要是只有一个dll。但是也有一些 xml 文件会被添加,因此必须从 tfs 获取最新信息。如果有重大变化,那么 3-4 个 dll 会受到影响。
  • Mikael 或我的回答对您有帮助吗?您最终找到解决方案了吗?
  • 我还没有尝试过,因为我离笔记本电脑有点远。一旦我尝试实施它们,明天就会让你们知道。感谢所有的答案。我会尽快通知您。

标签: c# visual-studio-2013 msbuild coded-ui-tests


【解决方案1】:

如果您想替换整个解决方案并从头开始构建,我建议您删除文件夹然后获取它:

   rd /s MySolutionFolder
   tf get MySolutionFolder

但是,这当然需要一些时间。

除非您在 VM 上编辑文件,否则 tf get 不应触发任何冲突。如果您正在编辑文件,则可以结合使用 tf get 和 tf resolve 来处理这些问题。您可以使用类似的方法来忽略任何冲突并获取服务器版本。

 tf get MySolutionFolder /recursive /noprompt
 tf resolve /auto:taketheirs

【讨论】:

  • 好的,太好了!那您介意将其标记为答案吗?
  • 我已将 perry 的解决方案标记为答案,因为我使用了他的方法并为我工作。
【解决方案2】:

您也可以使用 Team Foundation Power Tools (link to tfpt)。这是一个非常有用的小实用程序 =)。具体来说,如果您想确保您的工作区与 TFS 相同,您可以使用:

tfpt scorch /diff /deletes /recursive /noprompt

您可能不需要/diff,除非您想检查 MD5 差异而不仅仅是只读位(这也可能取决于服务器/本地工作区)。 /recursive 在这种情况下也可能不会做任何事情,因为您没有指定根文件夹。没关系,因为我认为您想将其应用于整个工作区。

我很确定您必须从 Visual Studio 开发提示中调用它。您可以在批处理文件中添加一行,例如:

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 的帖子也是一个很好的答案,因为我的回答无助于解决冲突。我的回答更像是擦除所有内容并恢复它(根据需要)。

【讨论】:

  • 脑子里只有一个问题,如果我只需要替换那些从服务器版本中更改的文件。可以使用 tfpt 完成吗?
  • 我会查看tfpt treecleantfpt scorch(如我的回答中所述)和tfpt uu Team Foundation Power Tool 命令,看看哪一个最适合您的需求。我最好的猜测是,如果 scorch/treeclean 太重,tfpt uu 可能就是你要找的东西。
  • 再次感谢佩里的回答!真的很有帮助!
猜你喜欢
  • 2011-04-22
  • 1970-01-01
  • 1970-01-01
  • 2011-02-13
  • 2010-09-07
  • 1970-01-01
  • 2011-07-25
  • 2018-12-31
  • 2017-05-24
相关资源
最近更新 更多