【发布时间】:2015-03-26 02:14:24
【问题描述】:
我想知道 Visual Studio 将它的 nuget.exe 副本保存在哪里,以便我可以在我计划执行的自定义 msbuild 目标中使用该路径。
前段时间,NuGet 包还原在 Visual Studio 中不是自动的:您必须导入自定义 .targets 文件,以便在构建之前还原包。当时,每个解决方案都在 .nuget 文件夹中保存了一份 nuget.exe 的副本。如今,Visual Studio 在构建时会自动执行此操作,这向我表明某处有一个 nuget.exe 文件,它用于恢复解决方案的包。
理想情况下,我想知道它使用 MSBuild 宏的路径,因为那样的话,在哪台机器上构建项目并不重要,路径将始终指向正确的位置。
对于那些可能好奇的人,我想开始分发我们在私有 nuget 提要上拥有的内部库,并打算在构建时使用 nuget.exe 构建 nupkg 文件。我知道NuGetter,但它比我想要的更复杂和不灵活,所以我觉得至少从一个纯粹的 msbuild 方法开始会更简单。
【问题讨论】:
-
哇,真的吗?现在我想到了这一点,这很明显:P。我从来没有想过 nuget.exe 本身可能在一个包中。这实际上很好地解决了这个问题!如果您可以将其作为答案,我会标记它。我觉得这可能是另一个问题,但是,如果不考虑 .exe,那么 nuget 扩展如何导入包? .exe 和扩展名是否调用了一个通用代码库来完成这些工作(这将是我编写代码的方式,但我不确定它是如何工作的)。我在windows里搜了一下,没有找到exe,所以很纳闷。
-
Visual Studio 中的 NuGet 包管理器大量使用了 NuGet.exe 也使用的共享 NuGet.Core.dll。如果您在 Program Files 中搜索,您应该会找到 NuGet.Core.dll 和其他使用的 dll。但是,Visual Studio 中的 NuGet 插件和 NuGet.exe 都编写了合理数量的代码来启动还原过程。
-
@MattWard 这与我的想法一致。现在很有意义,谢谢。
标签: visual-studio-2013 msbuild nuget nuget-server