尝试获取PowerShell脚本以运行nuget.exe命令

时间:2014-12-29 13:04:26

标签: powershell nuget

我正在尝试在powershell脚本中运行以下命令。

nuget pack MyNuGetSpec.nuspec -Version 1.2.3-alpha

当我有这个PS代码时,我收到错误..

代码:

"NuGet packing $file to a .nupkg ..."
$exe = $path + "nuget.exe pack $file -Version $version"

$exe

&$exe

和错误消息..

  

NuGet将MyNuGetSpec.nuspec打包到.nupkg ... C:\ Projects \ Foo \ NuGet   包规格\ nuget.exe包MyNuGetSpec.nuspec -Version   1.2.3-alpha& :术语'C:\ Projects \ Foo \ NuGet包规范\ nuget.exe包MyNuGetSpec.nuspec -Version 1.2.3-alpha'   不被识别为cmdlet,函数,脚本文件或的名称   可操作程序。检查名称的拼写,或路径是否正确   包含,验证路径是否正确,然后重试。在   C:\ Projects \ Foo \ NuGet包规范\ build.ps1:106 char:10   +& $ exe   + ~~~~       + CategoryInfo:ObjectNotFound:(C:\ Projects \ Foo ... 0.1.0-alpha:String)[],ParentContainsErrorRecordException       + FullyQualifiedErrorId:CommandNotFoundException

$path == Directory: C:\Projects\Foo\NuGet Package Specifications
$file == `MyNuGetSpec.nuspec`
$version == 0.1.0-alpha`

最后,我将.exe与.nuspec文件并排(在同一文件夹中)。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:6)

您需要将可执行文件名与参数分开:

$exe = $path + "nuget.exe"

&$exe pack $file -Version $version

答案 1 :(得分:5)

轻微改动,

 $path="c:\..."
 $file= "MyNuGetSpec.nuspec"
 $version= "0.1.0-alpha"
 Invoke-Expression "$($path)\nuget.exe pack $($file) -Version $($version)"

这应该用适当的参数执行nuget.exe