首页
学习
活动
专区
圈层
工具
发布

CI中的Cake

在上一篇C#Make自动化构建-简介中,简单的介绍了下Cake的脚本如何编写以及通过Powershell在本地运行Cake脚本。本篇在此基础上,介绍下如何在CI环境中使用Cake。 1....上借助  (Mono已经实现net47)来运行。...在不同的CI环境中执行相同的自动构建 cake的目的在于一次编写,可以运行在不同的构建环境和构建工具中。同时可以把构建脚本纳入到源代码管理中,而不是编写在某一特定的ci/cd工具中。...3.2 Cake with Travis Travis提供有linux的ci环境,同样的我们添加一个 .travis.yml 文件然后关联Travis的服务即可。...总结 以上简单的介绍了一下Cake的简介信息,和如何再不同的CI环境中使用Cake来维护一个相同的自动化构建的流程。如有错误,欢迎指正!

1.5K70

将 WPF、UWP 以及其他各种类型的旧 csproj 迁移成基于 Microsoft.NET.Sdk 的新 csproj

从对比中我们就能明显看出新 csproj 文件的优势: 文件小,易读易写 在版本管理中更容易解冲突 NuGet 包的引用没有路径要求,这意味着开发者可以任意指定 NuGet 包的位置 嵌套的引用不需要重复指定...手动迁移过程中可能遇到的坑 如果你的项目比较小,比较新,比较少折腾,那么走完上面的五个步骤基本上你应该能够直接编译通过并运行了。不过,能做到这些的项目其实真不多,基本上或多或少都会遇到一些坑。...比如,你可能放入项目的不止有 cs 文件,还有其他各种用途的资源——你需要重新选中他们然后在属性面板中设置文件的生成属性。...然而我并不知道是否是因为旧版本的 Visual Studio 2017 不支持在新 csproj 中编译 XAML。...唯一的解决办法就是清除项目中的所有 NuGet 缓存,使用 git clean -xdf。 迁移之后的劣势 迁移成新的 csproj 格式之后,新格式中不支持的配置会丢失。

2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    dotnet 配置 Gitlab 的 Runner 做 CI 自动构建

    今天在少珺小伙伴的协助下,使用了 gitlab 的 runner 给全组的项目做自动的构建。...为什么需要使用 Gitlab 的 Runner 做自动构建,原因是之前是用的是 Jenkins 而新建一个底层库项目想要接入自动构建等,需要来回在 Gitlab 和 Jenkins 上配置,大概步骤差不多有...于是我就和头像大人商量使用虚拟机环境的方法,我在空闲的服务器上安装了 VirtualBox 虚拟机,然后在虚拟机部署 Runner 接着在项目接入,这样就可以确定打包的环境,同时迁移服务器也比较方便 我在团队内负责团队各个项目用到的....gitlab-ci.yml 文件,无需做任何配置就可以集成 CI 自动单元测试,每个 push 自动构建,合并 master 分支自动打包发布 nuget 包。...打包失败 虚拟机是用的是 nat 方式,建议使用桥接方式让 gitlab 和虚拟机在相同局域网 虚拟机里面的 runner 使用服务运行,也就是访问不到用户变量和用户路径的文件 首先在服务器上安装 VirualBox

    2.7K20

    0.C#Make自动化构建-简介

    Cake是C# Make的缩写,是一个基于C# DSL的自动化构建系统。它可以用来编译代码,复制文件以及文件夹,运行单元测试,压缩文件以及构建Nuget包等等。...跨平台: 基于Roslyn和Mono来编译我们写的自动化脚本,使得它可以运行在windows,linux,mac上。...可靠的:可以建立在自己的机器上,也可以建立在像AppVeyor,TeamCity,TFS,VSTS或Jenkins这样的CI系统上,都可以以相同的方式运行。...一个简单的DEMO 笔者在Github上创建了一个简单的DEMO(cake.demo),下面简单的介绍,项目非常简单,一个类库项目,一个测试项目,如下: ?...其次Cake基于Roslyn和Mono,使得它可以提供跨平台的自动化构建,也可以运行在各种常用的CI系统之上。

    1.9K50

    .NET Core+Selenium+Github+Travis CI => SiteHistory

    戳这里→→使用travis-ci自动部署github上的项目 项目构建思路 运行程序,传入名称 网址 如:dotnet run baidu https://www.baidu.com 创建一个phanomjs...Travis CI 时的 .travis.yml配置 若使用Travis CI 集成 ,要新增网站截图项,则在travis.yml中script节点下添加命令即可 ?...预装 language: csharp dist: trusty dotnet: 2.0.0 # mono:latest Travis CI默认会安装mono,测试发现若不安装mono,Travis...Selenium需要引入Nuget包为:CoreCompat.Selenium.WebDriver 配置中的变量按照此文章配置即可 亲测搭配travis-ci食用最佳,Fork之后,前往travis-ci...配置即可 参阅文章:使用travis-ci自动部署github上的项目 欢迎分享值得记录的网站。

    1.2K10

    刚刚我从服务器回滚了 dotnet 5 的环境

    今天是 2020.11.13 我在 CI 服务器上更新 dotnet 到 dotnet 5 以及 VS 到 16.8.1 最新版本,但是我在刚刚不得不回滚了环境…… 因为构建不通过 现象 使用经典的 NuGet...还原加上 msbuild 的构建,如以下代码将会构建失败 nuget restore msbuild /p:Configuration=Release 构建失败核心提示如下 C:\Program Files...c release 或者使用 dotnet 的还原配合 msbuild 的构建 dotnet restore msbuild /p:Configuration=Release 但是以上方法都有缺点,在一些使用旧版本格式的...或者在 dotnet build 里面使用了 dotnet core 版本的 msbuild 丢失了旧版本 dotnet framework 版本的 msbuild 支持的旧版本功能,让一些旧版本项目构建不通过...我当前的 CI 服务器上依然承担了一定数量的旧版本项目的任务,因此 dotnet 5 环境暂时还不能支持,只能回滚了 彻底的解决方法 彻底的解决方法是: 再等几天 更新到 NuGet 5.8 就能解决

    84610

    译 | .NET Core 基础架构进化之路(一)

    在所有这些情况下,在许多层面上都有失败的机会,进一步减缓了这一进程。...迁移到 Azure DevOps 如上所述,更大的团队在 2.2 版本中使用了 CI 系统的组合: AppVeyor 和 Travis 用于 ASP.NET Core 的 GitHub PR TeamCity...我们在一个特殊的脚本文件中定义了 Jenkins PR 作业,TeamCity 有许多手动配置的作业,AppVeyor 和 Travis 使用自己的 yaml 格式,Azure DevOps 具有我们在它之上构建的模糊自定义系统...很容易在 PR 中更改生成逻辑并中断官方的 CI 构建。为了缓解这种情况,我们确实努力在正式 CI 和 PR 构建中通用的脚本中保留尽可能多的逻辑,但差异总是随着时间的推移而逐渐减少。...某些差异(如在构建环境中)基本上不可能完全消除。 更改工作流的做法差别很大,而且往往难以理解。

    3.2K40

    CentOS 7上的GitLab Runner,让你的项目加速奔跑

    前言 在软件开发的道路上,持续集成和持续部署是不可或缺的一环,就像是您的项目的生命力源泉。而GitLab Runner,则是这条流水线上的得力助手,为您的代码提供快速、可靠的构建和部署。...kubernetes: 在 Kubernetes 集群中运行任务。 virtualbox: 在 VirtualBox 虚拟机中运行任务。...docker:在Docker容器中执行任务,可用于构建和运行应用程序。 kubernetes:在Kubernetes集群中执行任务,适用于复杂的容器化环境。...共享卷:共享卷允许在不同作业之间共享文件或目录,便于数据传递和共享。可以将构建产生的文件、测试报告等存储到共享卷中,并在后续作业中使用。...第三方CI/CD工具:如Jenkins、Travis CI等,可以与GitLab Runner集成,实现更复杂的CI/CD流程。

    66100

    必备的DevOps工具链大盘点

    Visual Studio 就使用 MSBuild 作为构建工具。 Rake Rake 是一个软件任务管理和自动化构建工具。...在内部,你可以配置构建工具,把工件发布到 Nexus,然后其他开发人员就可以使用它们了。 NuGet NuGet 是.Net 包管理器。NuGet 客户端工具提供了生成和使用包的能力。...Travis CI Travis CI 是一个托管的 CI 服务,用于构建和测试托管在 GitHub 上的软件项目。Travis CI 为私人项目提供各种付费计划和免费开源计划。...构建 Web、桌面和移动应用程序,并将其部署到云端或本地。 通过管道自动化构建和部署,减少在具体细节上花费的时间,把更多的时间花在创造性的事情上。...它将为你汇总出一些有趣的数据,例如花费在服务上的时间百分比以及操作是否失败。

    2.4K30

    .Net在Windows上使用Jenkins做CICD的那些事

    背景   最近入职了一家新公司,公司各个方面都让我非常的满意,我也怀着紧张与兴奋的心情入职后,在第一天接到了领导给我的第一个任务——把整个项目的依赖引用重新整理并实施项目的CI/CD。   ...在实施过程中让我感悟最多的是,dotnet core命令的便捷性,Linux运维的便捷性,下文我有很多构建脚本都是shell脚本来的,当时想着学习一次就不需要学习bat脚本了,最终还是躲不过。   ...在远程传送并远程执行命令我折腾得最久,开始想着用FTP与Telnet,谁知道Telnet命令没有附带账号密码参数,脚本不好写,后改成PsExec.exe,使用过程中很多奇怪的问题,后来不得不去折腾OpenSSH...项目(包含所以依赖的项目)依赖引用丢失,主要体现以下几点: 官方依赖包没有使用NuGet 内部项目引用通过本地引用,项目没有拉取则编译失败 NuGet包多个版本的引用 同属一个解决方案,但是项目分散到各个仓库...自动发布组件包到NuGet   新建Freestyle project,并在【源码管理】、【构建】填入您的构建信息,构建脚本我是保存在服务器上,因为保存在服务器上更加可靠。 ? ?

    2.3K31

    运维必备的DevOps工具链大盘点

    Visual Studio 就使用 MSBuild 作为构建工具。 Rake Rake 是一个软件任务管理和自动化构建工具。...在内部,你可以配置构建工具,把工件发布到 Nexus,然后其他开发人员就可以使用它们了。 NuGet NuGet 是.Net 包管理器。NuGet 客户端工具提供了生成和使用包的能力。...Travis CI Travis CI 是一个托管的 CI 服务,用于构建和测试托管在 GitHub 上的软件项目。Travis CI 为私人项目提供各种付费计划和免费开源计划。...构建 Web、桌面和移动应用程序,并将其部署到云端或本地。 通过管道自动化构建和部署,减少在具体细节上花费的时间,把更多的时间花在创造性的事情上。...它将为你汇总出一些有趣的数据,例如花费在服务上的时间百分比以及操作是否失败。

    1.8K20

    最全的DevOps工具集合,再也不怕选型了!

    目前业内比较常用的构建工具包括 Maven/Gradle、MSBuild、Rake、JFrog Artifactory、Sonatype Nexus 和 NuGet。 ?...你可以配置自己的内部构建,然后发布到 Nexus 上供其他开发者使用。 NuGet NuGet 是.NET 的软件包管理器。NuGet 客户端工具提供了生成和使用软件包的功能。...Travis CI TravisCI 是一项托管 CI 服务,用于构建和测试 GitHub 上托管的软件项目。Travis CI 为私有项目提供各种付费计划,并提供了开源的免费方案。...系统会为你总结一些有趣的数据,例如在一个服务中花费的时间百分比,以及操作是否失败等。...GitHub Pages GitHub Pages 是一种静态站点托管服务,可直接从 GitHub 上的存储库中获取 HTML、CSS 和 JavaScript 文件,还可以在构建过程中运行这些文件并发布网站

    3.4K11

    Jenkins持续集成与自动化部署系统安装配置

    (注意:Jenkins服务器需安装MSBuild,建议在Jenkins上安装VS开发工具,可以在构建出问题的时候打开VS调试,省去很多不必要的麻烦)。...4.遇到的问题     原以为按照度娘的一系列解决方案能够很顺利的构建,可是在连续失败了几十次之后,才明白远远没有那么简单。...方案1:     借鉴Nuget的思想,使用Nuget服务器管理我们自己开发的一些公共依赖库。关于Nuget管理依赖的文章在另一篇博客里。...几十次的构建失败,一堆乱七八糟的引用是多么痛的领悟!...而这种方案其中也有许多细节的地方在文章中没有提到,如:如何实现自动化的Nunit单元测试,如何定时构建......

    1.3K30

    dotnet pack

    默认情况下,dotnet pack 先构建项目。 如果希望避免此行为,则传递 --no-build 选项。 此选项在持续集成 (CI) 生成方案中通常非常有用,你可以知道代码是之前生成的。...如果存在锁定文件或其他问题,生成也可能失败。 可向 dotnet pack 命令提供 MSBuild 属性,用于打包进程。...有关详细信息,请参阅 NuGet 包目标属性和 MSBuild 命令行引用。 示例部分介绍了如何在不同的情况下使用 MSBuild -p 开关。 默认情况下,Web 项目不可打包。...|-h|--help 打印出有关如何使用命令的说明。 --include-source 除输出目录中的常规 NuGet 包外,还包括调试符号 NuGet 包。...源文件包括在符号包内的 src 文件夹中。 --include-symbols 除输出目录中的常规 NuGet 包外,还包括调试符号 NuGet 包。

    2.1K20

    .net持续集成sonarqube篇之 sonarqube与jenkins集成(命令模式)

    .然而这一点几乎不用担心,因为我们从前面的讲解可以看到我们的构建操作都是通过命令行来进进行的,从这一点来看应该是可以无缝的集成到jenkins环境,然而我们把命令原封搬到Jenkins上发现,事情并不像想像的那么简单...),第二,把环境变量添加到全局配置里.加到全局变量里虽然方便了,但是全局变量的总长度是有限制的,如果配置的过多很容易超出限制,还有一点问题就是像mono在安装的时候全自动添加很多环境变量,如果用户装了mono...,使用全局的msbuild编译有时候会造成编译的结果和指定完整路径的编译结果不一致,这一点请用户自己斟酌....问题2 相对路径问题 以上代码中我们使用了%CD%,我们前面的示例都是在工程目录下执行的,%CD%即为当前目录,而在Jenkins环境中,当前目录是Jenkins\workspace\项目名,如果处理不当...问题4 默认Jenkins账户无法编译Sonarqube项目 我们把所有的问题都解决完之后,会发现Jenkins仍然构建失败,提示信息如下Running the Scanner for MSBuild

    1.1K20

    干掉 Jenkins?顶级 DevOps 工具链大盘点

    Visual Studio 就使用 MSBuild 作为构建工具。 Rake Rake 是一个软件任务管理和自动化构建工具。...在内部,你可以配置构建工具,把工件发布到 Nexus,然后其他开发人员就可以使用它们了。 NuGet NuGet 是.Net 包管理器。NuGet 客户端工具提供了生成和使用包的能力。...Travis CI Travis CI 是一个托管的 CI 服务,用于构建和测试托管在 GitHub 上的软件项目。Travis CI 为私人项目提供各种付费计划和免费开源计划。...构建 Web、桌面和移动应用程序,并将其部署到云端或本地。 通过管道自动化构建和部署,减少在具体细节上花费的时间,把更多的时间花在创造性的事情上。...它将为你汇总出一些有趣的数据,例如花费在服务上的时间百分比以及操作是否失败。

    1.5K20

    工欲善其事,必先利其器——DevOps中如何管理工具包

    一、背景 作为DevOps交付流水线的开发者,为支持CI/CD中各项任务的自动化,都需要依赖多种包管理工具来下载各种相关的工具,比如针对产生最终交付件的构建过程,就需要在构建流程的第一步,自动地把相关工具...而这样通过公网来下载工具,有时会遇到稳定性的问题,也就是所谓的环境问题,导致工具下载失败,进而导致构建任务的失败。因此,我们需要引入新的技术来克服这些问题,保证工具包下载的稳定和可靠。...这些问题在我们使用自动化构建工具(如Travis CI、Jenkins、Gitlab CI,等等)来实现持续集成CI的时候,会被成千上百倍地放大。...同时,在网络访问有限制的时候,如很多金融企业都会采用的网络隔离,根本不可能去下载这些公网服务器上的工具包。...四、示例一——Chocolatey 当使用Choco为Windows系统下载Gradle的时候,我们经常会碰到类似下面这样的503错误,从而导致构建失败: 解决的方法:我们在Artifactory里定义一个

    1.5K21

    如何针对ASP.NET Web项目实现自动化部署

    自动化部署的核心概念 2.1 CI/CD流水线架构 2.2 核心组件说明 持续集成(CI)阶段: 源码管理:Git仓库管理代码版本 自动构建:代码变更触发自动编译 质量把关:代码检查、单元测试、安全扫描...DevOps Release中创建多环境部署: 测试环境任务: 下载构建制品 部署到Azure App Service (Staging Slot) 运行烟雾测试 发送Slack通知 生产环境任务:...= 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Professional\\MSBuild\\Current\\Bin\\MSBuild.exe...使用构建缓存 优化Docker镜像层 实施增量部署 团队协作: 制定部署规范文档 建立值班轮换制度 定期进行技术分享 收集用户反馈持续优化 结语 自动化部署不是一蹴而就的事情,需要团队持续投入和优化。...从简单的构建脚本开始,逐步完善成熟的CI/CD体系,这个过程虽然需要时间,但一旦建立起来,将极大提升团队的开发效率和产品质量。 记住:好的自动化部署系统应该让开发者感觉不到它的存在,但又离不开它!

    29710
    领券