我正在使用Cake runner for .NET Framework来构建一个.NET Framework 4.8控制台应用程序。我使用以下命令获取了build.ps1
:
Invoke-WebRequest https://cakebuild.net/download/bootstrapper/windows -OutFile build.ps1
这个文件里没有我的任何更改。而我的 build.cake
文件看起来是这样的:
var configuration = "Release";
var buildPath = $"CakeEnvDemo/bin/{configuration}";
var buildDir = Directory(buildPath);
var solution = "CakeEnvDemo.sln";
Task("Clean")
.Does(() =>
{
Information("Running Clean ...");
CleanDirectory(buildDir);
});
Task("NuGetRestore")
.IsDependentOn("Clean")
.Does(() =>
{
Information("Running NuGetRestore ...");
NuGetRestore(solution);
});
Task("Build")
.IsDependentOn("NuGetRestore")
.Does(() =>
{
MSBuild(solution, settings => settings.SetConfiguration(configuration));
});
Task("AfterBuild")
.IsDependentOn("Build")
.Does(() =>
{
Information("Running After Build ...");
var cakeEnv = EnvironmentVariable("cake_env", "default value");
Information($"Got value of cake_env from environment: {cakeEnv}");
});
RunTarget("AfterBuild");
请参考"AfterBuild"任务。基本上,我想在构建完成后读取一个环境变量并进行某些操作。然而,无论我做什么,cake似乎都无法获取它,而是始终使用我提供的默认值。
根据这里的文档,我认为像这样做:
$cake_env="actual env var value"
.\build.ps1
这应该是有效的,但实际上从来没有生效过。我总是得到默认值:
========================================
AfterBuild
========================================
Running After Build ...
Got value of cake_env from environment: default value
我不想使用参数,请不要推荐 ScriptArgs
。我想要环境变量。
cake_env
环境变量的值? - C. Augusto Proiete