I'm trying to create a NuGet package using a Cake script:
var configuration = Argument("configuration", "Release");
var binDir = Directory("./bin") ;
var nugetPackageDir = Directory("./artifacts");
var nugetFilePaths = GetFiles("./**/*.csproj").Concat(GetFiles("./**/*.nuspec"));
var nuGetPackSettings = new NuGetPackSettings
{
BasePath = binDir + Directory(configuration),
OutputDirectory = nugetPackageDir
};
Task("NuGetPack")
.Does(() => NuGetPack(nugetFilePaths, nuGetPackSettings));
I get the following error:
========================================
NuGetPack
========================================
Executing task: NuGetPack
Attempting to build package from 'SomeProject.csproj'.
MSBuild auto-detection: using msbuild version '12.0' from 'C:\Program Files (x86)\MSBuild\12.0\bin'.
Unable to find 'C:\DEV\SomeProject\bin\Debug\SomeProject.dll'. Make sure the project has been built.
An error occured when executing task 'NuGetPack'.
Error: NuGet: Process returned an error (exit code 1).
It searches the assembly in the Debug
folder instead of the Release
folder.
How to set NuGetPack build configuration to Release in Cake?
You need to add the following command line argument -Prop Configuration=Release
to the nuget pack
command:
var nuGetPackSettings = new NuGetPackSettings
{
BasePath = binDir + Directory(configuration),
OutputDirectory = nugetPackageDir,
ArgumentCustomization = args => args.Append("-Prop Configuration=" + configuration)
};
It can be set using the Properties
property:
var nuGetPackSettings = new NuGetPackSettings
{
BasePath = binDir + Directory(configuration),
OutputDirectory = nugetPackageDir,
Properties = new Dictionary<string, string>
{
{ "Configuration", configuration }
}
};
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With