我正在尝试创建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
构建成功< / p>
我在Working Directory
TFS Build Agent
$(SystemDrive)\Builds\$(BuildAgentId)\$(BuildDefinitionPath)
提示我将$(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=""$(ToolsHome)NuGet.exe" restore "$(MSBuildThisFileDirectory)HCMS.sln"" />
</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>
答案 0 :(得分:0)
$(BuildAgentName)没有参数。每次创建构建控件的构建代理时。 TFS将在托管代理的计算机上的构建下自动创建名为AgentID的文件夹。如果删除代理并读取它。 AgentID也将是一个新的。
必须有一个具有agentID 3的代理。不在本地计算机上,应该在其他计算机上。不确定为什么CI构建会将您的解决方案复制到代理工作文件夹C:\ Builds \ 3。
尝试此解决方法:在代理计算机上删除C:\ Build并重建它。它将重新创建一个新的检查是否得到相同的错误。
<强>更新强>
通常我们不需要更改Build.proj,可以通过构建过程实现大多数自定义。除非在TFS2005或TFS2008中使用。
首先,尝试创建一个新项目并将其构建为检查Build.proj是否导致此错误。
如果您在代理属性的工作目录中更改了$(SystemDrive)\Builds1\$(BuildAgentId)\$(BuildDefinitionPath)
,那么现在使用此代理的所有其他构建将更改为C:\ Builds1 \ 1 \ xxx
如果您没有更改该值,由于您搞乱了工作目录文件夹,您可以删除代理计算机(服务器)上的C:\ builds ,它会自动重新创建一个当您触发代理的新构建时,新的。