命令" C:\ Main \ Src \ .nuget \ nuget.exe restore -SolutionDirectory .. \"退出代码1

时间:2017-08-14 18:31:50

标签: visual-studio-2013 nuget tfsbuild

我一直在努力让NuGet工作一周以上。我终于让它在本地构建上工作,但不在TFS 2013构建上。我在团队建设过程中将其缩小到NuGet没有发生,但是当我添加

$(SolutionDir).nuget\nuget.exe restore -SolutionDirectory ..\

到构建顺序中我的第一个项目的预构建事件,我收到此错误。如果我从解决方案目录中的命令行执行该命令,它可以正常工作。 它在本地构建很好,但在构建服务器上,我得到了这个"代码1"错误。非常有帮助的Grrrrr!所以我在构建之前打开了TFS获取的源代码并尝试在构建服务器上进行本地构建,并且我得到了相同的错误(即使它在我的本地机器上工作正常)。我尝试在团队构建上增加冗长,但这只是显示相同的错误。对不起 - 我已经搜索了这个错误并发现了很多回复,但没有任何帮助......

BTW,当我在解决方案中运行nuget.exe版本时,它的版本为3.4.3.855。

1 个答案:

答案 0 :(得分:1)

要使用TFS XAML版本启用还原NuGet包,请尝试按照以下步骤操作:

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

    更多详情请参阅此分步教程:Auto restore Nuget packages with TFS Build the right way