TFS是如何知道的NuGet?(How does TFS know about nuget?)

2019-10-20 07:20发布

从这篇文章 -

“不过,也有情况下,它实际上不是谁在做建筑的人,谁因此不能提供同意这样的。(在哪里Visual Studio中甚至没有安装。)的典型例子是构建服务器。在这种情况下, ,的NuGet也将查找名为EnableNuGetPackageRestore的环境变量。为了使包场景中的Visual Studio的选项是不实际的,这个变量设置为true恢复“。

如何TFS甚至不知道如何调用的NuGet? 我安装的NuGet exe文件?

Answer 1:

如何TFS甚至不知道如何调用的NuGet? 我安装的NuGet exe文件?

不,你应该启用包可以从上下文菜单来完成在解决方案资源管理解决方案文件的解决方案恢复。 这将添加一个文件夹命名为.nuget到您的解决方案,并在此文件夹中,你会发现NuGet.exe

如果您添加解决方案到源代码管理,并建立它的生成服务器上NuGet.exe可执行文件将被的NuGet的MSBuild目标,可用于从恢复的NuGet包作为构建的一部分。

所以,你不需要在生成服务器上安装的NuGet - 它成为你的项目的一部分,版本控制下放置。



Answer 2:

正如你在一个评论,说“启用NuGet包还原”不再是完成此推荐的方法。 该的NuGet文档最好的解释。 基本上,因为该方法被集成到MSBuild的,扩展编译软件包将被来不及下载。 虽然我不知道什么包做到这一点现在似乎有对的NuGet未来的大计划(新的ASP.NET vNext定制CLR实现就是它的领导的一个例子)。

好消息是,另一种方法是很容易成立。 如果你在VS的时候,你从字面上什么也不做(除非您禁用了自动包装过去还原)。 如果你有一个构建服务器,你只需要进行一些小改动你的.proj文件。 如果你不熟悉的MSBuild它看起来可能具有挑战性,但它真的很简单。 秘密就是这个块的代码:

<Target Name="RestorePackages">
    <Exec Command="&quot;$(ToolsHome)NuGet\NuGet.exe&quot; restore &quot;%(Solution.Identity)&quot;" />
</Target>

再次,细节在docs( 这一个特定地)。 如果你有任何问题,不要害怕伸手:多所社区为您提供帮助!



Answer 3:

如果您设置您的解决方案,以恢复的NuGet包,然后构建帐户,打开VS生成服务器上,并设置允许的NuGet构建在Visual Studio中下载缺失的软件包。 您应该建立包恢复正常。



文章来源: How does TFS know about nuget?
标签: tfs nuget