【问题标题】:Where does Visual Studio keep it's own copy of nuget.exe?Visual Studio 在哪里保存它自己的 nuget.exe 副本?
【发布时间】: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


【解决方案1】:

我想知道 Visual Studio 将它的 nuget.exe 副本保存在哪里

它没有。 Nuget 是一个加载项,只是 DLL。在我的机器上,它存储在 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\clzwekqw.krr 目录中。目录名称的“clzwekqw.krr”部分不会从一台机器重复到另一台机器,它是动态创建的。一种避免加载项相互干扰的基本机制。

可以获取Nuget.exe,它可以通过Nuget获得:) 获取Nuget.CommandLine包,当前版本的项目页面is here。它将像往常一样安装在项目的子目录中。目前是packages\NuGet.CommandLine.2.8.3\tools,只是.exe

【讨论】:

    猜你喜欢
    • 2010-09-17
    • 2018-03-03
    • 1970-01-01
    • 2014-07-10
    • 2023-03-11
    • 2013-09-12
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    相关资源
    最近更新 更多