如何在命令行中使用Paket

10

我使用Nuget Package Manager控制台从Nuget中安装了Paket:

Install-Package paket

然后我尝试运行 paket convert-from-nuget。它在用户提示处停顿了下来(我无法在包管理器控制台中输入)。我的下一个想法是从命令行运行它,但如何运行它没有记录。

只需将 paket convert-from-nuget 放入标准的开发命令提示符中,就会出现一个错误,显示“paket”未被识别。

如何从命令行或PowerShell运行Paket,并指定要处理哪个解决方案?

2个回答

10

设置Paket在您的存储库中的方法如下:

1 下载一个 paket.bootstrapper.exe 的版本

这是一个轻量级的实用程序,用于获取和更新paket.exe,请从官方发布页面选择稳定版本:

https://github.com/fsprojects/Paket/releases

2 创建一个.paket文件夹

md .paket

3 将下载的引导程序放入此文件夹并调用它

cd .paket
paket.bootstrapper

现在您拥有最新的paket.exe,可以方便地处理依赖关系。

4 从NuGet进行转换

cd ..
.paket\paket convert-from-nuget
请查看https://github.com/fsprojects/Paket.VisualStudio,这是用于Visual Studio插件的库,可帮助您编写paket.dependenciespaket.references文件。
如果你有任何问题,请加入https://gitter.im/fsprojects/Paket

4

Chocolatey软件包会修改PSModulePath环境变量。我发现有时候这个修改不会立即生效,直到系统重新启动(或者至少在用户退出并重新登录后)。在此期间,您可以使用以下命令导入模块:

Import-Module <path-to-packages>\Paket.PowerShell\Paket.PowerShell.psd1

软件包路径通常类似于C:\Chocolatey\lib。另一方面,重新阅读您的问题,您是否指的是Visual Studio中的Nuget?如果是这样,它会从NuGet.org下载并将该pkg放置在$(SolutionDir)\packages\Pakget.1.18.5\tools\paket.exe中。您的版本号可能会有所不同。
不幸的是,PowerShell V5引入了Install-Package(默认情况下从Chocolatey下载),这将与Visual Studio中的NuGet包管理器控制台中的Install-Package产生一些混淆。

是的,我指的是在 Visual Studio 中通过 NuGet 安装。那么要在它之外使用它,我需要导航到解决方案目录中的版本或在 PowerShell 中单独安装它?对于后者,您如何指定解决方案? - BradleyDotNET
来自Visual Studio的版本不会安装PowerShell模块。所以对于它,你只需指定路径到<package>\tools\paket.exe,例如 & 'C:\users\foo\documents\visual studio 2013\projects\acme\packages\paket.1.18.5\tools\paket.exe' arg1 arg2 - Keith Hill
谢谢提供的信息。我仍然好奇在使用PowerShell模块时如何指定解决方案的方法。 - BradleyDotNET
PowerShell 模块被安装在众所周知的位置。因此,当您想要使用模块中的命令时,只需导入该模块,例如 Import-Module <module-name>。这将使模块的命令可用于使用。如果模块设计良好,PowerShell 可以找到相关的模块,并在您尝试使用其中一个命令时自动导入它。在安装了 PowerShell 和 Chocolatey 的系统上(请参阅 chocolatey.org 获取安装说明),执行 choco install paket.powershell -y 来安装该模块。 - Keith Hill
顺便说一句,这不是一个特别有礼貌的PowerShell模块。它似乎在命令名称中颠倒了动词和名词。 - Keith Hill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接