Pure.Krome
Pure.Krome

Reputation: 86957

Trying to get a PowerShell script to run a nuget.exe command

I'm trying to run the following command in a PowerShell script.

nuget pack MyNuGetSpec.nuspec -Version 1.2.3-alpha

When I have this PS code, I get an error..

Code:

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

$exe

&$exe

and the error message..

NuGet packing MyNuGetSpec.nuspec to a .nupkg ... C:\Projects\Foo\NuGet Package Specifications\nuget.exe pack MyNuGetSpec.nuspec -Version 1.2.3-alpha & : The term 'C:\Projects\Foo\NuGet Package Specifications\nuget.exe pack MyNuGetSpec.nuspec -Version 1.2.3-alpha' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At C:\Projects\Foo\NuGet Package Specifications\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`

Lastly, I have the .exe side-by-side (in the same folder) as the .nuspec file.

Upvotes: 6

Views: 12446

Answers (2)

GeekzSG
GeekzSG

Reputation: 963

Minor alteration,

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

This should execute nuget.exe with appropriate parameters

Upvotes: 6

Micky Balladelli
Micky Balladelli

Reputation: 9991

You need to separate the executable name from the arguments:

$exe = $path + "nuget.exe"

&$exe pack $file -Version $version

Upvotes: 8

Related Questions