7

在蛋糕脚本中,当使用加载指令(#load)时,这可以是可选的吗?如果引用的文件不存在,我不希望 CAKE 脚本返回异常。

文档引用了“?”的使用 让它尝试加载,但即使这样,如果文件不存在,我也会得到异常。

#load "local:?path=properties.cake";

但是在执行时我得到错误:

Analyzing build script...
Error: Could not find script 'C:/projects/my-project/properties.cake'.

CAKE 脚本在许多项目中都很常见,只有其中一些项目会有附加文件,因此存在问题。

谢谢

4

3 回答 3

5

目前没有一种可选加载脚本的方法,但请随时在https://github.com/cake-build/cake上为此创建一个问题。

?并不表示尝试加载,它只是一个查询字符串分隔符。预#load处理器值是一个带有可选回退路径的 URI,用于向后兼容旧版本的 Cake。

于 2017-08-02T15:29:42.283 回答
0

您可以通过在 build.ps1 脚本中配置一个空白/默认 properties.cake 来解决这个问题,就像这样。

if (!(Test-Path "properties.cake")) {
    Write-Host "First run! Generating properties.cake..."
    Copy-Item "properties.cake.default" -Destination ".\properties.cake"
}

# Build Cake arguments
$cakeArguments = @("$Script");
(...)

然后你需要用你的蛋糕脚本提交一个 properties.cake.default 文件!

于 2019-09-10T02:41:40.380 回答
0

现在至少从 Cake 0.38.5 版开始支持这一点。如果正在加载的文件不存在,该#load指令只会显示警告。.cake

当文件不存在时,Cake 的屏幕截图显示警告

于 2021-02-04T02:23:47.413 回答