- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用蛋糕 0.22.0。
取决于传入 build.cake
的参数, 我要加载不同的 .cake
文件。例如,如果参数 VisualStudioVersion
具有值 2013
, 我要加载 vs2013dlls.cake
文件;如果它具有值 2015
,然后我想加载 vs2015dlls.cake
文件;等等。
看着 the CAKE page on preprocessor directives ,我没有看到有关预处理器关键字的任何信息,例如 #if
和 #else
.
我宁愿不复制其他 .cake
的内容文件到 build.cake
, 以免 build.cake
变得过于臃肿。
我如何加载 .cake
有条件的文件?
最佳答案
目前在脚本加载时不支持条件,如果 def 支持,0.23.0 将添加,但预处理器指令被处理为相同的级别/优先级,因此对您的特定问题没有帮助。
不过,您可以做的是创建一个小的 bootstrap 蛋糕脚本,该脚本可以为您的特定场景提供所需的片段。
使用 CakeExecuteExpression 的示例
var visualStudioVersion = Argument("VisualStudioVersion", "2017");
var statements = new List<string>();
var currentDir = MakeAbsolute(Directory("./"));
statements.Add("#load \"{0}/common.cake\"");
switch(visualStudioVersion)
{
case "2013":
statements.Add("#load \"{0}/vs2013.cake\"");
break;
case "2017":
statements.Add("#load \"{0}/vs2017.cake\"");
break;
default:
throw new Exception(string.Format("Unknown VisualStudioVersion: {0}", visualStudioVersion));
}
var expression = string.Format(
string.Join(
"\r\n",
statements
),
currentDir
);
CakeExecuteExpression(
expression
);
build.cake
文件调用
vs2013.cake
或
vs2017.cake
取决于论点。
Information("This will execute regardless version!") ;
#load "common.cake"
Information("Hello VS2013!");
#load "common.cake"
Information("Hello VS2017!");
var visualStudioVersion = Argument("VisualStudioVersion", "2017");
switch(visualStudioVersion)
{
case "2013":
CakeExecuteScript("vs2013.cake");
break;
case "2017":
CakeExecuteScript("vs2017.cake");
break;
default:
throw new Exception(string.Format("Unknown VisualStudioVersion: {0}", visualStudioVersion));
}
cake .\executescript.cake
This will execute regardless version!
Hello VS2017!
cake .\executescript.cake --VisualStudioVersion=2013
This will execute regardless version!
Hello VS2013!
关于cakebuild - 有条件地加载 .cake 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46648455/
我想要一个 Argument> (或 string[] ,或其他 - 一个可迭代的字符串列表)到我的 Cake 脚本,但我不知道如何从 build.ps1 传递它至 cake.exe . 这是我到目前
我使用蛋糕 0.22.0。 取决于传入 build.cake 的参数, 我要加载不同的 .cake文件。例如,如果参数 VisualStudioVersion具有值 2013 , 我要加载 vs201
使用 Error() 方法只会记录错误。但是如果我想中止构建怎么办?我可以抛出异常来中止构建,但它似乎不对。那么有没有合适的中止方式呢? var releaseNotes = ParseRelease
我在运行 build.cake 时遇到了一些问题文件,但我无法立即看到问题所在。有没有办法启用诊断详细信息,以便我可以获得有关正在发生的事情以及如何解决问题的更多信息? 最佳答案 是的,您可以轻松地在
我在 build.cake 文件中有一组任务,我想将控制台的日志输出捕获到日志文件中。我知道可以使用 OnError() 函数将错误输出到文件,但我想将所有内容输出到日志文件,而不仅仅是错误。下面是
我尝试找到加载插件和任务的最佳方法,以防发生重大更改。 背景 我基于 Cake 0.25.0 创建了一个插件和几个任务。插件以及任务都打包在 NuGet 包中。现在我想将使用的 Cake 版本更新到
我在 build.cake 文件中有一组任务,我想将控制台的日志输出捕获到日志文件中。我知道可以使用 OnError() 函数将错误输出到文件,但我想将所有内容输出到日志文件,而不仅仅是错误。下面是
我尝试找到加载插件和任务的最佳方法,以防发生重大更改。 背景 我基于 Cake 0.25.0 创建了一个插件和几个任务。插件以及任务都打包在 NuGet 包中。现在我想将使用的 Cake 版本更新到
是否有一种简单的方法可以获取给定目录路径的目录列表(例如 DirectoryPathCollection)? 我希望能够轻松获取当前目录以及给定路径的所有目录。 我在 Directory Operat
在蛋糕文件中,如何在 MsBuild 操作上“启用并行构建”。我将消息输出到终端以“请添加“/m”开关”,但我在传递给 MsBuild 方法的 MS build设置中看不到如何执行此操作。 最佳答案
当我试图在一台只知道 Visual Studio 2017 的机器上安装一个使用 Cake v0.19.1 构建的解决方案时,我似乎无法得到 NuGetRestore接受 MSBuildVersion
我在此站点上找不到与运行自定义系统命令相关的任何信息:cakebuild.net/dsl 我该怎么做? 我要运行的真正命令是“upx mproject.exe” 最佳答案 如果我理解正确的话,那么您正
DotNetCoreBuild 和 DotNetBuild 有什么区别? 我使用 DotNetCoreBuild 作为我的解决方案。解决方案中的所有项目都是核心项目。添加新的非核心项目后,构建不再运行
我无法弄清楚如何在 Cake 中使用 XmlPoke 更改 XML 节点的内部文本值。我不断收到的错误是 Error: Expression must evaluate to a node-set.
我想在我的 Cake 构建期间从 github 版本 ( https://github.com/google/protobuf/releases/download/v2.6.1/protoc-2.6.
xmlns 属性不会被忽略是错误还是每个设计? (蛋糕版本 0.33.0) 使用这样的 Xml(一个过于简化的 nuspec 文件): 3.0.0
我正在尝试 Cake (C# Make) .到目前为止,所有示例和文档都有脚本文件在委托(delegate)中声明其所有代码,如下所示: Task("Clean") .Does(() => {
我正在重构 Cake 构建脚本,并决定引入一个类来保存一些经常传递和/或存在于全局范围内的build设置。 一些设置来自参数,并使用 Argument(string name, string defa
一直在查看 Cake(位于 http://cakebuild.net ),并且想知道它是否可用于部署 Web 应用程序和/或访问虚拟服务器以部署发布包。 我喜欢 cake 作为 C# 部署框架的想法,
我正在将 Xamarin Android 项目集成到我们的 CI 管道中。我们已经将 CakeBuild 用于其他 .NET 项目,因此我也想在这里使用它。 问题是我在尝试使用 Cake 构建时总是收
我是一名优秀的程序员,十分优秀!