【问题标题】:Continuous Integration error in build path in build project tfs visual studio构建项目 tfs Visual Studio 中构建路径中的持续集成错误
【发布时间】:2016-03-14 16:05:14
【问题描述】:

我正在尝试创建一个Continuous Integration - CI。我正在使用build.proj 构建项目期间CI 在构建运行后出现以下错误

C:\Builds\3\ADSVC\HCMS - Continues Integration\src\build.proj (22): The command ""C:\Builds\3\ADSVC\HCMS - Continues Integration\src\.nuget\NuGet.exe" restore "C:\Builds\3\ADSVC\HCMS - Continues Integration\src\HCMS.sln"" exited with code 1

C:\Builds\3\ADSVC\HCMS - Continues Integration\src\build.proj 中的问题,但文件夹 3 不包含在 Builds 文件夹中我只有一个名为 1 的文件夹,但偶然通过 C:\Builds\1\ADSVC\HCMS - Continues Integration\src\build.proj 构建成功

我在TFS Build Agent$(SystemDrive)\Builds\$(BuildAgentId)\$(BuildDefinitionPath)中也有以下属性Working Directory

提示我将$(BuildAgentId) 更改为$(BuildAgentName),但它也不起作用,没有文件夹

我的Build.proj如下

<?xml version="1.0" encoding="utf-8"?>
   <Project ToolsVersion="4.0"
     DefaultTargets="Build"
     xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

   <PropertyGroup>
        <ProjectPath>$(SystemDrive)\Builds1\$(BuildAgentId)\$(BuildDefinitionPath)
   </ProjectPath>
   <OutDir Condition=" '$(OutDir)'=='' ">$(MSBuildThisFileDirectory)bin\      
   </OutDir>
   <Configuration Condition=" '$(Configuration)'=='' ">Release</Configuration>
   <SourceHome Condition=" '$(SourceHome)'=='' ">$(MSBuildThisFileDirectory)src\</SourceHome>
   <ToolsHome Condition=" '$(ToolsHome)'=='' ">$(MSBuildThisFileDirectory).nuget\</ToolsHome>
  </PropertyGroup>


  <ItemGroup>
    <Solution Include="$(SourceHome)*.sln">
     <AdditionalProperties>OutDir=$(OutDir);Configuration=$(Configuration)</AdditionalProperties>
  </Solution>
 </ItemGroup>

 <Target Name="RestorePackages">
    <Exec Command="&quot;$(ToolsHome)NuGet.exe&quot; restore &quot;$(MSBuildThisFileDirectory)HCMS.sln&quot;" />
 </Target>

  <Target Name="Clean">
    <MSBuild Targets="Clean"
         Projects="@(Solution)" />
   </Target>

  <Target Name="Build" DependsOnTargets="RestorePackages">
    <MSBuild Targets="Build"
         Projects="@(Solution)" />
  </Target>

  <Target Name="Rebuild" DependsOnTargets="RestorePackages">
     <MSBuild Targets="Rebuild"
         Projects="@(Solution)" />
   </Target>


 </Project>

【问题讨论】:

    标签: visual-studio tfs continuous-integration


    【解决方案1】:

    $(BuildAgentName) 没有参数。每次创建构建控制的构建代理。 TFS 将在托管代理的机器上自动创建一个名为 AgentID 的文件夹。如果您删除代理并阅读它。 AgentID 也将是一个新的。

    必须有一个agentID为3的代理。不在您的本地计算机上,应该在其他计算机上。不确定为什么您的 CI 构建会将您的解决方案复制到代理工作文件夹 C:\Builds\3 。

    试试这个解决方法:删除代理机器上的 C:\Builds 并重建它。它将重新创建一个新的检查是否有相同的错误。


    更新

    通常我们不需要更改 Build.proj,大部分自定义都可以通过构建过程实现。除非这在 TFS2005 或 TFS2008 中使用。

    首先,尝试创建一个新项目并构建它以检查您的 Build.proj 是否导致此错误

    如果您在代理属性的工作目录中更改了$(SystemDrive)\Builds1\$(BuildAgentId)\$(BuildDefinitionPath),现在使用此代理的所有其他构建都将更改为 C:\Builds1\1\xxx

    如果你没有改变这个值,因为你把工作目录文件夹弄乱了,你可以删除你代理机器(服务器)上的C:\builds,它会自动重新创建一个当您触发代理的新构建时,新的一个。

    【讨论】:

    • 我的机器中没有文件夹 CI 直接在 tfs 服务器上构建,因此文件在服务器中而不是在我的机器中 我试图将代理中的文件夹名称更改为 $(SystemDrive)\Builds1\$(BuildAgentId)\$(BuildDefinitionPath) 而不是$(SystemDrive)\Builds\$(BuildAgentId)\$(BuildDefinitionPath) 和同样的错误只发生了一次将文件添加到新路径并且在这种情况下构建成功。然后使用另一个我不知道它在哪里的文件夹运行多次并且构建失败
    • 对不起,我表达的不好。我只是指服务器中的文件夹(您的代理机器)。你的问题解决了吗?通常我们不需要更改 Build.proj,大部分定制都可以通过构建过程来实现。尝试创建一个新项目并构建它以检查您的 Build.proj 是否导致此错误。以及您是如何更改 $(SystemDrive)\Builds1\$(BuildAgentId)\$(BuildDefinitionPath) 的,您是在 Build.proj 中还是在代理属性的工作目录中更改了它。已更新我的答案。
    • 谢谢,我发现问题是,一旦我找到这些代理并禁用它们,就会创建另一个代理并将其分配给另一台服务器中的控制器,现在问题已解决
    猜你喜欢
    • 2013-11-29
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-18
    • 2015-07-14
    • 2011-09-21
    相关资源
    最近更新 更多