微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.NET Framework (4.8) 的 Cake runner 不选择环境变量

如何解决.NET Framework (4.8) 的 Cake runner 不选择环境变量

我正在使用 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 似乎都无法捡起它,而是始终使用我提供的认值。

根据文档 here,我假设是这样的:

$cake_env="actual env var value"
.\build.ps1

应该有效,但它从来没有。我总是得到认值:

========================================
AfterBuild
========================================
Running After Build ...
Got value of cake_env from environment: default value

我不想使用参数,所以请不要推荐 ScriptArgs。我想要环境变量。

解决方法

这个:

$cake_env="actual env var value"

正在设置本地 PowerShell 变量,而不是环境变量。

您应该能够使用:

$env:cake_env="actual env var value"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。