Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# TFS 2015构建自动化:获取源代码始终在第一个任务之前运行_C#_.net_Visual Studio_Tfs_Continuous Integration - Fatal编程技术网

C# TFS 2015构建自动化:获取源代码始终在第一个任务之前运行

C# TFS 2015构建自动化:获取源代码始终在第一个任务之前运行,c#,.net,visual-studio,tfs,continuous-integration,C#,.net,Visual Studio,Tfs,Continuous Integration,我正在使用TFS 2015版本管理器来持续集成到我们的项目中。在生成定义中,我放置了一个Powershell任务,以便在实际使用Visual Studio生成任务生成项目之前,将项目程序集更新为新的生成版本 当我尝试运行构建时,问题就开始了,在启动第一个任务(即更新项目程序集的powershell)之前,始终有一个隐藏的“Get Sources”任务正在运行。因此,即使我正在更新项目程序集,在构建完成后,更改也不会反映在工件暂存目录中 我的问题:如何防止默认情况下在Powershell任务之前

我正在使用TFS 2015版本管理器来持续集成到我们的项目中。在生成定义中,我放置了一个Powershell任务,以便在实际使用Visual Studio生成任务生成项目之前,将项目程序集更新为新的生成版本


当我尝试运行构建时,问题就开始了,在启动第一个任务(即更新项目程序集的powershell)之前,始终有一个隐藏的“Get Sources”任务正在运行。因此,即使我正在更新项目程序集,在构建完成后,更改也不会反映在工件暂存目录中


我的问题:如何防止默认情况下在Powershell任务之前调用此隐藏的获取源任务

似乎您也想在生成运行时(而不是排队时)真正获取最新的,就像

Ericsiple的解决方案运行良好,您可以运行批处理脚本作为构建的第一步

CD /d "%Build_SourcesDirectory%"
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\TF.exe" get * /r

此批处理使用的是
tf.exe
命令,需要在生成代理计算机中安装VS。并且该命令应位于生成代理上的相应路径<代码>Microsoft Visual Studio 14.0,代表VS2015

没有办法防止在另一个任务之前调用Get Sources任务


解决方法是,您可以为CI生成创建另一个生成定义(触发器>检查连续集成),然后在第一次生成更新项目程序集并签入源代码管理后,将触发此生成。

“更新项目的程序集”。如果没有“获取源代码”,可能就没有可使用的项目/源代码(git克隆),这是您的powershell taks所期望的吗?@MartinUllrich powershell正在按预期工作,以更新项目的生成版本,但更新的生成版本未反映在最终生成中。这是因为TFS 2015 release manager的构建定义首先下载整个项目,然后执行我们定义的任务。我想先停止下载项目的默认行为,然后从powershell任务更新生成版本,然后强制TFS RM下载项目。这是使用“新建”生成和发布系统还是使用经典版本管理?我不知道版本号会如何影响正在下载的源。。vsts代理接收的构建作业基本上是“使用此定义构建此源”@MartinUllrich看起来我的问题与中提到的问题类似,但提供的解决方案不起作用。powershell脚本更新的文件在哪里?在TFS版本控制中还是在生成代理中?