【问题标题】:Install-Package & NuGet Package install location - where installed to?安装包和 NuGet 包安装位置 - 安装到哪里?
【发布时间】:2017-12-13 03:08:42
【问题描述】:
> nuget                                                                                                         
nuget : The term 'nuget' is not recognized as the name of a cmdlet, function, script file, or operable program. ...

> find-package -name nuget | Install-package -verbose
VERBOSE: Skipping installed package NuGet 1.3.3.

> nuget                                                                                                         
nuget : The term 'nuget' is not recognized as the name of a cmdlet, function, script file, or operable program. ...

如果安装了,安装在哪里?我搜索了整个驱动器,除了我手动安装的那个之外,不存在nuget.exe 的其他副本(但它显然不在 $PATH 中,所以它肯定不是指那个 - 我将它重命名为仔细检查!)。


问题更新

我对自己的 Java 体验抱有期望,但似乎我问错了问题。

我的用例如下。背景优先。

  • 我是 MS App 开发的新手,虽然有十年的 Java 开发经验。
  • (我目前所在的位置)有一个旧版本的 ASP.Net 应用程序无法使用 dotnet cli。
  • 这里的团队已经硬编码(保存)依赖项,并且还创建了他们的构建系统以期望找到其他依赖项,例如在 Visual Studio 安装中。有我的背景,我不喜欢这种期望,尤其是在扩展方面。
  • 现有的构建系统使用MSBuild 并利用.targets 文件

我的用例是使用定义的(未预下载)依赖项和在除了一些关键工具之外对构建环境没有任何期望的服务器上运行构建。 Visual Studio 是一个 IDE,我不希望在服务器上找到它。

我在packages.config 文件中创建了依赖项。我想将nuget.exe 添加到构建脚本中(目前是build.bat,但首选powershell 等效项)。

我知道那里有很多信息,但由于我在这方面缺乏知识,因为我想做的事情植根于 2012 年左右(我猜),我不确定怎么办。

鉴于我所知道的,我想我想做的只是:

  1. build.bat / build.ps1 脚本的开头安装nuget
  2. 运行nuget 安装定义的依赖项
    • 我已经手动下载了nuget,运行nuget restore并确认它可以满足我的需求
  3. 像以前一样运行构建

提出这个问题的第一次尝试是解决此列表中的#1。我认为powershell可以用来下载nuget.exe然后构建脚本可以调用nuget restore

【问题讨论】:

  • 你是对的。感谢阅读和回答。

标签: powershell nuget installation powershell-module


【解决方案1】:

如果安装了,安装在哪里?

假设您在 Windows 机器上,PowerShell 包通常安装在C:\Program Files\WindowsPowerShell\Modules(全局)或C:\Users\%USERNAME%\Documents\WindowsPowerShell\Modules(当前用户)中。

nuget.exe 是专门安装的——是的,就在你安装它的地方;引用NuGet CLI Reference (MSDocs):

安装 nuget.exe

  1. 在 Mac 和 Linux 上,安装 Mono 4.4.2 或更高版本。
  2. 访问 nuget.org/downloads 并选择所需的 NuGet 版本。
  3. 每次下载都是直接nuget.exe文件。指示您的浏览器将文件保存到您选择的文件夹中。该文件不是安装程序;从浏览器运行它不会显示任何内容。
  4. 将您放置 nuget.exe 的文件夹添加到您的 PATH 环境变量中,以便在任何地方使用 CLI 工具。

这似乎有点令人困惑,不是吗?请记住,有 3 种不同的包/应用程序:

  1. NuGet CLI(如引用)
  2. NuGet PowerShell Package / 包管理器控制台(我想你在寻找什么)出口自己的Install-Package
  3. PowerShell 的 PackageManagement 包(也是一个 Install-Package cmdlet)

【讨论】:

  • 谢谢@Clijsters 我想我有一个基于以前的经验的期望(我来自 Java 世界)并问了错误的问题。我会更新我的问题。我想要 CLI 版本,以便我们的构建脚本可以安装依赖项。
  • 我认为最简单的方法是使用以iwr "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe" "$pwd/nuget.exe" 开头的安装脚本。请记住,目标机器必须具有正确的执行策略才能运行 PoSh 脚本。
  • 太好了,我试试看。
  • 我必须使用iwr <uri> -o $pwd\nuget.exe(或wget <uri> -o $pwd\nuget.execurl ...)。或者使用-OutFile 而不是-o
【解决方案2】:

重新阅读我更新的问题,我认为在构建服务器上安装 nuget.exe 不是问题。或者使用 docker 例如。 https://blog.alexellis.io/3-steps-to-msbuild-with-docker/.

正如@Clijsters 正确指出的那样,有关于下载nuget 的说明。这将是最明智的做法。我对 power shell 安装它的能力有点困惑。但那不是nuget.exe

我工作的环境可能不支持 Docker,所以我现在不会去追求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    • 2019-04-15
    相关资源
    最近更新 更多