可以在可选文件中使用CAKE中的load指令吗?

时间:2017-08-02 15:08:41

标签: c# cakebuild

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

documentation引用了'?'使它尝试加载,但即使这样,如果文件不存在我也会得到例外。

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

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

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

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

由于

3 个答案:

答案 0 :(得分:4)

目前还没有一种可选择加载脚本的方法,但可以https://github.com/cake-build/cake为此创建问题。

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

答案 1 :(得分: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文件!

答案 2 :(得分:0)

现在至少从 Cake 0.38.5 版开始支持。 #load 指令只会在加载的 .cake 文件不存在时显示警告。

Screenshot of Cake displaying a warning when the file does not exist