小编dev*_*ead的帖子

如何将自己的自定义参数传递给build.ps1?

我尝试了build.ps1 -SettingsProfile"Customer",但它输出了

More than one build script specified.
Run Code Online (Sandbox Code Playgroud)

在我的Cake脚本中,我通过

Argument("SettingsProfile", "Default")
Run Code Online (Sandbox Code Playgroud)

如果我跳过build.ps1的参数然后它会工作,但显然变成"默认".

c# cakebuild

10
推荐指数
1
解决办法
4298
查看次数

Cake:构建脚本进度

我目前正在构建一个与团队城市互动的Cake构建脚本,我想提供进度消息.我可以轻松报告任务名称,但我无法找出构建脚本中的进度.想想("执行任务1的5").

有没有办法在构建脚本中找到进度?

c# cakebuild

6
推荐指数
1
解决办法
2109
查看次数

如何在托管的 Ubuntu 代理上的 Azure Pipelines 中启用实验 Docker 守护程序

我希望能够--squash在构建 docker 图像时使用该开关,因为这会减少几 MB 的结果图像。

这需要为 docker 启用实验性功能。

执行一个docker --version确认(应该)在托管的 Azure Pipelines 代理上关闭实验性功能。

Server:
 Engine:
  Version:  18.03.1-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.5
  Git commit:   9ee9f40
  Built:    Thu Apr 26 07:15:30 2018
  OS/Arch:  linux/amd64
  Experimental: false
Run Code Online (Sandbox Code Playgroud)

Linux 代理正在运行

Kernel Version: 4.15.0-1022-azure
Operating System: Ubuntu 16.04.4 LTS
OSType: linux
Architecture: x86_64
Run Code Online (Sandbox Code Playgroud)

我试过改变/etc/systemd/system/docker.service.d/docker.conf/etc/docker/daemon.json开始/包含实验标志,但没有成功启用它。

docker.conf

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --experimental=tr
Run Code Online (Sandbox Code Playgroud)

或者

daemon.json

{ 
    "experimental": true 
} 
Run Code Online (Sandbox Code Playgroud)

但是不要不确定我是否可以在托管代理上重新启动守护程序。

目前正在做 yaml 构建从 bash …

docker azure-devops azure-pipelines

6
推荐指数
1
解决办法
1006
查看次数

使用0.15.2更改GetFiles中的更改不能排除文件夹

我不记得在哪里,但找到了如何从搜索中排除文件夹的示例.我们的问题是搜索node_modules会导致长路径异常.

Func<IFileSystemInfo, bool> exclude_node_modules = fileSystemInfo=>!fileSystemInfo.Path.FullPath.Contains("node_modules");

var solutions = GetFiles("./**/*.sln", exclude_node_modules);
Run Code Online (Sandbox Code Playgroud)

解决此问题的任何帮助都会有所帮助.

c# cakebuild

5
推荐指数
1
解决办法
325
查看次数

如何记录蛋糕构建参数?

在蛋糕构建脚本中,有一种非常巧妙的方法是使用.Description()Task上的扩展来记录任务.使用-showdescription参数调用构建脚本时,将显示这些说明.

我在构建脚本中有几个自定义参数,我想以某种方式记录.目前,我添加了一个任务,输出类似于手册页面样式的描述文本,用于可查看的参数,如下所示:

var nextLineDescription = "\n\t\t\t\t\t"; // for formatting 
Console.WriteLine("ARGUMENTS");
Console.WriteLine("");

Console.WriteLine("\t--someparameter=<number>\t\t" +
                "Description of the parameter" + nextLineDescription +
                "that can span multiple lines" + nextLineDescription +
                "and defaults to 5.\n");
Run Code Online (Sandbox Code Playgroud)

这工作正常,但是很多工作,特别是如果文本应该正确格式化,以便它在命令行中可读.

因此,当我打电话给./build.ps1 -Target MyDocTask 我时,我得到了一个很好

ARGUMENTS

        --someparameter=number          Description of the parameter
                                        that can span multiple lines
                                        and defaults to 5

        --nextParameter                 Next description

...

是否有另一种方法或最佳实践来为参数添加文档,以便它可以在命令行中显示,类似于任务描述?

编辑:或者,我可以在构建脚本中找到所有可用参数来循环它们并生成这样的描述而不是为每个参数手动编写它吗?

c# documentation build cakebuild

5
推荐指数
1
解决办法
698
查看次数

使用CakeBuild XMLPoke更改节点的内部文本值

我无法弄清楚如何使用Cake中的XmlPoke来更改XML节点的内部文本值.我一直得到的错误是Error: Expression must evaluate to a node-set.

我的XML看起来像这样

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <publishUrl>This value must be set to your local path</publishUrl>
    <DeleteExistingFiles>False</DeleteExistingFiles>
  </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

build.cake看起来像这样

// Update the publish path in the pubxml
XmlPoke(publishProfile, "/Project/PropertyGroup/publishUrl/", buildPaths.PublishDirectory);

// The publishProfile is just the location of the XML file
// The buildPaths.PublishDirectory is the value I'm trying to set the inner text to
Run Code Online (Sandbox Code Playgroud)

c# xml msbuild xmlpoke cakebuild

4
推荐指数
1
解决办法
609
查看次数

使用Cake(C#make)在树中构建所有解决方案?

我在同一目录树中有多个VS解决方案,并希望使用Cake构建所有这些解决方案.有没有办法构建所有这些,而不是逐个将它们放入构建脚本?

谢谢你的任何想法

c# msbuild cakebuild

4
推荐指数
1
解决办法
1356
查看次数

什么是最小的例子和Cake脚本Alias/Addin?

我正在寻找为Cake创建我自己的插件以扩展DSL,文档有点缺乏.

创建Cake插件脚本别名所需的最低要求是什么?

c# cakebuild

3
推荐指数
1
解决办法
759
查看次数

如何执行基于退出代码的任意可执行文件和失败的Cake构建?

我如何在我的Cake构建脚本中运行任意可执行文件并检查该程序的退出代码?如果它没有返回给定的退出代码,那么我希望构建失败。

c# process cakebuild

3
推荐指数
1
解决办法
1160
查看次数

Cake 构建脚本中的提交计数?

我们\xe2\x80\x99正在迁移到为我们的CI管道使用Cake构建脚本,并且在我们的构建过程中,我们使用命令的输出来识别具有提交计数的构建git rev-list --all \xe2\x80\x93count

\n\n

Cake 中有没有一种本地方法可以实现此目的,而无需使用 git 命令行?

\n

c# git cakebuild

3
推荐指数
1
解决办法
500
查看次数

如何从msbuild获取构建日志?

我正在使用下面的代码来编译我的蛋糕脚本项目,我想在文本文件中获取构建日志.

if(IsRunningOnWindows())
{

  // Use MSBuild
  foreach(string currenproject in projectslocation)
  {
  MSBuild(currenproject, new MSBuildSettings()
  .SetConfiguration(configuration)
  .SetVerbosity(Verbosity.Minimal));

  }

}
Run Code Online (Sandbox Code Playgroud)

这可以创建构建日志文件吗?

c# msbuild cakebuild

3
推荐指数
1
解决办法
790
查看次数