Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 554
Pure.Krome Avatar asked Dec 19 '22 08:12

Pure.Krome


2 Answers

You need to separate the executable name from the arguments:

$exe = $path + "nuget.exe"

&$exe pack $file -Version $version
like image 99
Micky Balladelli Avatar answered Feb 24 '23 19:02

Micky Balladelli


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

like image 39
GeekzSG Avatar answered Feb 24 '23 19:02

GeekzSG