Tfsbuild TFS 2013生成控制器不考虑NuGet包还原

Tfsbuild TFS 2013生成控制器不考虑NuGet包还原,tfsbuild,azure-devops,nuget-package-restore,Tfsbuild,Azure Devops,Nuget Package Restore,我们将VSO与on-prem构建控制器(TFS 2013)一起使用。我已经在VisualStudio的“选项”菜单中启用了NuGet软件包还原(从使用.NuGet文件夹的旧的、不推荐的方式迁移而来) 在VS中,恢复包工作正常,但是构建控制器不恢复NuGet包。构建控制器在服务帐户下运行,如果我启动VS(在构建服务器上)作为服务帐户并构建代码,它会还原包。如何让构建控制器恢复丢失的包 在TFS的BuildProcessTemplate文件夹中,我没有TfvcTemplate.12.xaml,我只有

我们将VSO与on-prem构建控制器(TFS 2013)一起使用。我已经在VisualStudio的“选项”菜单中启用了NuGet软件包还原(从使用.NuGet文件夹的旧的、不推荐的方式迁移而来)

在VS中,恢复包工作正常,但是构建控制器不恢复NuGet包。构建控制器在服务帐户下运行,如果我启动VS(在构建服务器上)作为服务帐户并构建代码,它会还原包。如何让构建控制器恢复丢失的包

在TFS的BuildProcessTemplate文件夹中,我没有
TfvcTemplate.12.xaml
,我只有
DefaultTemplate.11.1.xaml
,由于我从未编辑过xaml文件,我看到有一个用于
NuGetRestore

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

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


有没有办法解决这个问题?另外,如何获取
TfvcTemplate.12.xaml
build模板?

要使用TFS build启用restore-NuGet包,请执行以下步骤。查看此项了解详细信息

  • 在VSIDE中,转到工具->选项->NuGet软件包管理器->启用允许NuGet下载缺少的软件包
  • 从.NuGet文件夹中删除NuGet.exe和NuGet.targets文件。这两个文件也将从版本控制中删除
  • 从.proj文件中删除以下标记:
  • 1。真的
    2.
    3.
    此项目引用此计算机上缺少的NuGet包。启用NuGet软件包还原以下载它们。欲了解更多信息,
    看见http://go.microsoft.com/fwlink/?LinkID=322105. 缺少的文件是{0}。
    
    对于在这里遇到我遇到的问题的任何人(一些但不是所有的包都在构建服务器上恢复),我的最后一个难题是在我的解决方案的根目录中添加一个NuGet.config,与.SLN文件同级,正如David Ebbo在这里解释的那样:

    从Ebbo的博文中,我看到的文件内容非常简单

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <packageSources>
        <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
      </packageSources>
    </configuration>
    
    
    

    
    
    我读了一篇类似的博客文章,其中介绍了如何删除nuget.targets和.exe文件,以及如何编辑proj文件,但没有提到删除true。我已经这样做了,并且做了另一个失败的构建-与我最初声明的问题相同-没有NuGet包正在恢复。构建模板不再添加到源代码管理中。如果在Visual Studio的“生成编辑”菜单中点击下拉菜单选择模板,则可以选择新模板。感谢@MrHinsh,我找到了更改下拉菜单的位置,它似乎解决了我的问题。也有帮助。我遇到了同样的问题。不过我使用的是AzureContinuousDeployment.11.xaml模板。您知道这里面是否有nuget包还原任务吗?我正在搜索xaml文件,但找不到任何与nuget相关的内容。@TWilly nuget Restore已添加到2013(v12)模板中。您可以编辑2012模板并在NugetRestore中拖动。我在执行实际生成(而不是清理)的MsBuild步骤之前添加了NuGetRestore步骤。我添加的唯一属性是将变量{localProject}传递给Solutions属性。这与传递到MsBuild项目变量的变量相同。
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />