来自this article -
“但是,有些情况下,实际上并不是这样做的人,因此无法以这种方式提供同意。(甚至没有安装Visual Studio。)原型示例是在这种情况下,NuGet还将查找名为EnableNuGetPackageRestore的环境变量。要在Visual Studio选项不可用的情况下启用包恢复,请将此变量设置为true。“
TFS如何知道如何调用nuget?我是否安装了nuget exe?
答案 0 :(得分:3)
正如您在评论中所述,"启用NuGet包恢复"不再是推荐的完成此方法的方法。 NuGet docs解释得最好。基本上,因为该方法已集成到MSBuild中,所以扩展构建的包将被下载太晚。虽然我目前还不确定这些软件包是做什么的,但是对于NuGet的未来似乎有很大的计划(新的ASP.NET vNext自定义CLR实现就是其中的一个例子)。
好消息是替代品很容易设置。如果你在VS中,你实际上什么也不做(除非你过去禁用了自动包恢复)。如果您有构建服务器,则只需对.proj文件进行一些小的更改。如果您不熟悉MSBuild,它可能看起来很有挑战性,但它非常简单。秘密就是这段代码:
<Target Name="RestorePackages">
<Exec Command=""$(ToolsHome)NuGet\NuGet.exe" restore "%(Solution.Identity)"" />
</Target>
同样,详细信息在文档中(具体为this one)。如果您有任何问题,请不要害怕联系:SO社区随时为您提供帮助!
答案 1 :(得分:0)
如果您将解决方案设置为还原NuGet包,然后在构建服务器上设置构建帐户,请打开vs并设置允许NuGet在Visual Studio中构建期间下载缺少的包。您的构建应该可以恢复包。
答案 2 :(得分:0)
TFS如何知道如何调用nuget?我是否安装了nuget exe?
不,您应该为解决方案启用包还原,可以从解决方案资源管理器中的解决方案文件的上下文菜单中完成。这会在您的解决方案中添加一个名为.nuget
的文件夹,在此文件夹中您会找到NuGet.exe
。
如果将解决方案添加到源代码管理并在构建服务器上构建,则NuGet msbuild目标将使用NuGet.exe
可执行文件作为构建的一部分从NuGet恢复软件包。
因此,您无需在构建服务器上安装NuGet - 它将成为您项目的一部分,并置于版本控制之下。