【问题标题】:Can't load cake module - Preprocessor directive expected无法加载 cake 模块 - 需要预处理器指令
【发布时间】:2018-03-06 22:19:30
【问题描述】:

我正在尝试运行一个蛋糕构建脚本,该脚本为长文件路径加载一个模块,但它只返回 错误 CS1024:需要预处理器指令

在我添加的蛋糕文件中 #module nuget:?package=Cake.LongPath.Module&version=0.5.0 这是我在 (1,2) 处得到错误的行

In the docs 它声明这是格式,我应该在实际运行脚本之前使用--bootstrap 运行脚本。运行Invoke-Expression "& `"$CAKE_EXE`" `"$Script`" --bootstrap" 会导致错误,然后在没有 --bootstrap 标志的情况下运行它之后我也会将其上线。

我需要确保在 CI 中安装并加载了 Cake.LongPath 模块。对其他解决方案的任何想法也会有所帮助

【问题讨论】:

  • 你能确认你使用的是什么版本的Cake吗?
  • 您能否确认这是您正在运行的命令Invoke-Expression "& "$CAKE_EXE" "$Script" --bootstrap" 请注意,引导参数实际上在 Invoke-Expression 之外,它不正确。
  • 写入主机输出:& "C:\...\Cake.exe" "build.cake" --bootstrap。不过,packages.config 中的 Cake 版本设置为 0.18,所以我想它已经很老了。尝试对 nuget 包使用 #load 并吞下它,但不确定它是否真的有效
  • #load 指令用于加载其他 .cake 文件或包含 .cake 文件的 nuget 包,而不是用于模块或其他任何内容。

标签: powershell cakebuild


【解决方案1】:

--bootstrap 命令仅在 Cake 0.24.0 版本中添加。您可以在此处查看发行说明:

https://github.com/cake-build/cake/releases/tag/v0.24.0

以及它在这里解决的问题:

https://github.com/cake-build/cake/issues/1950

我相当肯定这个问题会通过升级到更新版本的 Cake 来解决。这可以通过更改 packages.config 文件中的版本号并清除 tools 文件夹来完成。 注意:根据您使用的引导程序版本,工具文件夹的清除可能会自动为您完成。

【讨论】:

  • 是的,刚刚更新并尝试过,它似乎工作,应该是我尝试的第一件事,但有时简单的解决方案会让你忘记
猜你喜欢
  • 2012-06-29
  • 2017-02-11
  • 1970-01-01
  • 2015-09-29
  • 2012-08-14
  • 2011-06-16
  • 1970-01-01
相关资源
最近更新 更多