TFS 2013构建控制器不尊重NuGet包还原

djm*_*m61 8 tfsbuild tfs2013 nuget-package-restore azure-devops

我们正在使用VSO和本地构建控制器(TFS 2013).我在Visual Studio的"选项"菜单中启用了NuGet包还原(使用.nuget文件夹远离旧的,已弃用的方式).

在VS内部,恢复包工作正常,但构建控制器不会恢复NuGet包.构建控制器在服务帐户下运行,如果我作为服务帐户启动VS(在构建服务器上)并构建我的代码,它就会恢复软件包.如何让构建控制器恢复丢失的包?

在TFS的我BuildProcessTemplate文件夹,我不要有一个TfvcTemplate.12.xaml,我只需要DefaultTemplate.11.1.xaml和我从来没有编辑的XAML文件,我看到有一个工具箱项为NuGetRestore

我不确定如何继续,我有点想知道为什么我没有TfvcTemplate.12.xaml模板,但是因为我没有,我怎么能让我的构建服务器/控制器恢复NuGet包?

我已经编辑了服务帐户(位于AppData文件夹中)的NuGet.config文件以及位于我的解决方案根目录中的.nuget文件夹中的NuGet.config文件,但是我的构建总是因为缺失而失败依赖项(NuGet包).

有什么方法可以解决这个问题吗?另外,我如何获得TfvcTemplate.12.xaml构建模板?

Vic*_*SFT 8

要使用TFS构建启用还原NuGet包,请按照以下步骤操作.查看此博客了解详细信息.

  1. 在VS IDE中,转到工具 - >选项 - > NuGet包管理器 - >启用允许NuGet下载丢失的包.
  2. 从.nuget文件夹中删除 NuGet.exe和NuGet.targets文件.这两个文件也是从版本控制中删除的.
  3. 从.proj文件中删除以下标记:

    1. <RestorePackages>true</RestorePackages>

    2.<Import Project="$(SolutionDir)\.nuget\nuget.targets" />  

    3. <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">  
        <PropertyGroup>
            <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, 
    see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
        </PropertyGroup>
        <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
    </Target>
Run Code Online (Sandbox Code Playgroud)

对于您无法找到TfvcTemplate.12.xaml流程模板的另一个问题,您可以先在VSO中创建一个新的团队项目,下载流程文件并将其签入到Version Control中.然后编辑构建定义,单击Process选项卡上的New按钮,浏览版本控制中的过程文件.