如何使用Visual Studio无需成本即可实现连续集成

目录

介绍

EasyCI入门

如何准备开发环境

安装Easy持续集成服务器和客户端

编写一个简单的解决方案来测试EasyCI

测试EasyCI

配置EasyCI

“Easy Continuous Integration Server”如何定义其管道


EasyCI是一个被认为可以使连续集成易于使用的程序

介绍

持续集成是每个开发人员都有兴趣拥有的东西,但它并不容易获得,个性化和维护。

EasyCI是一个程序,被认为使连续集成易于使用,并允许它的可扩展性和可维护性。在下面的内容中,我将尝试解释如何使用免费工具轻松获得无成本的CI解决方案。

EasyCI入门

作为开发环境,可以使用Visual Studio 2017“社区版

它可以从这里下载。(你也可以破解版,你懂的~~

 

微软保留商业用途最多5个开发者:

组织许可。如果您是某个组织,您的用户可以按如下方式使用该软件:

  • 您的任何数量的用户都可以使用该软件开发和测试在开源倡议(OSI)批准的开源软件许可下发布的应用程序。
  • 您的任何数量的用户都可以使用该软件来开发和测试Visual Studio的扩展。
  • 您的任何数量的用户都可以使用该软件来开发和测试Windows操作系统的设备驱动程序。
  • 您的任何数量的用户都可以使用该软件开发和测试您的应用程序,作为在线或面对面的课堂培训和教育,或进行学术研究的一部分。
  • 如果以上都不适用,并且您也不是企业(定义如下),那么最多5个人用户可以同时使用该软件来开发和测试您的应用程序。

免费使用30天后,可以使用Microsoft Live帐户永久激活它。

如何准备开发环境

  1. 安装新的Windows7或更高版本的计算机)或使用现有的计算机。
    https://www.codeproject.com/KB/mentor/1273315/01_InstallingWindows.png
  2. Downoad Visual Studio社区版(从这里)。
    https://www.codeproject.com/KB/mentor/1273315/02_Download_VS2017.png
  3. 启动安装程序,并在显示用户帐户控制窗口时单击
    https://www.codeproject.com/KB/mentor/1273315/03_Uac.png
  4. 单击继续按钮。
    https://www.codeproject.com/KB/mentor/1273315/04_VsInstaller.png
  5. 等待下载完成。
    https://www.codeproject.com/KB/mentor/1273315/05_VsInstaller1.png
  6. 选择组件,如下图所示。
    https://www.codeproject.com/KB/mentor/1273315/06_VsInstaller2.png
  7. 安装完成后,使用Microsoft帐户登录(或创建一个帐户)。
    https://www.codeproject.com/KB/mentor/1273315/07_LaunchVS.png
  8. 登录后,窗口会显示您的凭据。
    https://www.codeproject.com/KB/mentor/1273315/08_Activate_VS.png
  9. 要激活Visual Studio,需要转到帮助”=>“关于Microsoft Visual Studio”
    https://www.codeproject.com/KB/mentor/1273315/09_Activate_VS_2.png
  10. 将打开一个窗口,需要点击许可证状态链接。
    https://www.codeproject.com/KB/mentor/1273315/10_Activate_VS_3.png
  11. 许可证是试用版。要将其更新为完整许可证,只需单击检查更新的许可证链接即可。
    https://www.codeproject.com/KB/mentor/1273315/11_Activate_VS_4.png
  12. 单击完成后,许可证将升级为完整的“Visual Studio社区类型。
    https://www.codeproject.com/KB/mentor/1273315/12_Activate_VS_5.png

安装Easy持续集成服务器和客户端

安装程序可在此处获得

  1. 下载安装程序后,安装'Easy Continous Integration Server.msi'
    https://www.codeproject.com/KB/mentor/1273315/19_InstallEasyCI_Server.png
  2. 在欢迎界面上点击下一步
    https://www.codeproject.com/KB/mentor/1273315/20_InstallEasyCI_Server_2.png
  3. 接受许可协议并点击下一步
    https://www.codeproject.com/KB/mentor/1273315/21_InstallEasyCI_Server_3.png
  4. 如果需要,请重新选组安装文件夹并点击下一步
    https://www.codeproject.com/KB/mentor/1273315/22_InstallEasyCI_Server_4.png
  5. 点击安装按钮。
    https://www.codeproject.com/KB/mentor/1273315/23_InstallEasyCI_Server_5.png
  6. 用户帐户控制窗口中点击
    https://www.codeproject.com/KB/mentor/1273315/24_InstallEasyCI_Server_6.png
  7. 安装完成后点击完成
    https://www.codeproject.com/KB/mentor/1273315/25_InstallEasyCI_Server_7.png
  8. 从下载文件夹中启动“EasyCI.msi”,并以与上面相同的方式继续。
    https://www.codeproject.com/KB/mentor/1273315/26_InstallEasyCI.png
  9. 如之前链接所述,完全禁用用户帐户控制将是一件好事(为了简化开发人员的生活)。

编写一个简单的解决方案来测试EasyCI

该解决方案位于Inheritance文件夹下。

测试EasyCI

  1. EasyCI安装完成后,可以同时运行'EasyCI''Easy ContinousIntegration Server'(第一个在任务栏中最小化,可以双击其任务栏图标恢复)。
    https://www.codeproject.com/KB/mentor/1273315/27_RunEasyCI.png
  2. 如果我们通过EasyCI恢复窗口(双击任务栏上的图标)删除一个'.sln'文件(参见EasyCI分发的Inheritance 子文件夹),程序将询问要生成“nuget”包的项目是什么,以及要生成安装项目的项目是什么。
    https://www.codeproject.com/KB/mentor/1273315/28_Questions.png
  3. 然后编译将开始,执行单元测试并创建安装项目
    https://www.codeproject.com/KB/mentor/1273315/29_Finished.png
  4. “Archive”目录中获取安装项目,可以安装生成的安装程序。
    https://www.codeproject.com/KB/mentor/1273315/30_Installer1.png
  5. 可以接受用户协议。
    https://www.codeproject.com/KB/mentor/1273315/31_Installer2.png
  6. 选择安装文件夹。
    https://www.codeproject.com/KB/mentor/1273315/32_Installer3.png
  7. 确认安装。
    https://www.codeproject.com/KB/mentor/1273315/33_Installer4.png
  8. 等待安装。
    https://www.codeproject.com/KB/mentor/1273315/34_Installer5.png
  9. 完成整个安装过程。
    https://www.codeproject.com/KB/mentor/1273315/35_Installer6.png
  10. 每个循环后,每个构建都被归档(默认情况下在'c:\Temp\Archive'下)
    https://www.codeproject.com/KB/mentor/1273315/38_Archive_Inheritance.png
  11. 对于每个编译项目,构建输出都保存在名为'[ProjectName] _ [CompileDate] - [CompileTime] _ [TargetFramework] .zip'的文件中
    https://www.codeproject.com/KB/mentor/1273315/40_BuildOutput.png
  12. 所有源代码都保存在名为'[SolutionName] _Source_ [CompileDate] - [CompileTime] .zip'的文件下。
    https://www.codeproject.com/KB/mentor/1273315/41_Source.png
    zip包含两个主文件夹:
    1. 包含子文件夹(名为'[SolutionName] _ [CompileDate] - [CompileTime]')的文件夹存档,其中包含生成的'.nupkg'文件
      https://www.codeproject.com/KB/mentor/1273315/42_Nupkg.png
    2. 在包含完整源代码的编译期间使用的名为临时文件夹的文件夹
      https://www.codeproject.com/KB/mentor/1273315/43_Source.png
      同一文件夹还包含两个名为“[SolutionName] .bat”“[SolutionName].actions.bat”的批处理文件
      https://www.codeproject.com/KB/mentor/1273315/44_batches.png
      • 第一个包含所有的在构建/测试/打包(build/test/pack)过程中执行的命令
        https://www.codeproject.com/KB/mentor/1273315/45_Commands.png
      • 第二个允许使用名为“ExecuteAction.exe”“Easy Continous Integration Server”安装路径中包含的命令重现所有构建/测试/打包(build/test/pack)过程
        https://www.codeproject.com/KB/mentor/1273315/46_Actions.png

配置EasyCI

可以配置EasyCI默认具有的各种行为。

下面是这些配置的完整列表:

  • ConfigurationName:获取或设置项目文件中使用的配置的名称(默认情况下为:DebugRelease)。
  • DontAllowTargetFrameworkToOutputPath:获取或设置不允许目标框架以Visual Studio 2017项目格式输出路径的可能性。
  • FilesToProcess:获取或设置要处理的文件。
  • FilesToRemove:获取或设置要删除的文件(不处理)。
  • FileTypesToInclude:获取或设置要包含的文件类型。
  • FoldersToExclude:获取或设置要排除的文件夹。
  • IncompatibleAssemblies:获取或设置不兼容的程序集。
  • PackagesDirectory:获取或设置包目录。
  • Platform:获取或设置平台(x86x64AnyCPU)。
  • ProjectsExtensionsParts:获取或设置支持的项目扩展名(.vbproj.csproj)。
  • ProjectsToPatch:获取或设置要修补的项目。
  • RemovePackagesAsAssemblyReference:获取或设置将包作为程序集引用删除的可能性。
  • SettingsToEdit:获取或设置要编辑的设置。
  • WildcardsToInclude:获取或设置要包括的文件类型通配符。
  • ArchiveZipDirectory:获取或设置归档构建zip文件的目录。
  • VisualStudioPath:获取Visual Studio路径。
  • SolutionToPublish:获取或设置要编译的解决方案,构建安装程序并将包发布到nuget
  • SolutionsToPublish:获取或设置要编译的解决方案集,构建安装程序并将包发布到nuget
  • ProjectsToCreateInstall:获取或设置要创建安装的项目。
  • NugetLocation:获取或设置nuget位置。
  • DeleteOldLogs:获取或设置删除旧日志的信息。
  • ProjectsToInclude:获取或设置要包含的项目。
  • DeleteNuSpecIfExists:获取或设置如果存在则删除nuspec文件的信息。
  • HigherVersionRange:获取或设置更高版本范围以增加实际包版本。
  • ResourcesDirectory:获取或设置用于创建安装程序项目的资源目录。
  • WinUIExtension:获取或设置win UI扩展。
  • KeyToPublish:获取或设置要发布的密钥。
  • LowerVersionRange:获取或设置较低的版本范围,以确定是否必须考虑之前的包以达到兼容性。
  • NuGet:获取或设置从中下载nuget.exeURL
  • NugetServer:获取或设置官方nuget服务器URL
  • PrivateNugetServer:获取或设置私有nuget服务器URL
  • PrivateNugetServerBase:获取或设置私有nuget服务器基本URL
  • PublishToOfficialRepository:获取或设置一个值,该值指示是否发布到官方nuget服务器。
  • ReleaseNotes:获取或设置发行说明。
  • RequireLicenseAcceptance:获取或设置一个值,该值指示包是否需要许可证接受。
  • NugetUpdate:获取或设置有关更新nuget包参考的项目的信息。
  • Tags:获取或设置用于创建包的标签。
  • VersionIncrement:获取或设置版本增量。
  • BaseAddress:获取或设置用于各种Easy持续集成服务器控制器的基础地址。
  • TemporaryDirectory:获取或设置临时目录。
  • ZipExclusion:获取或设置zip排除通配符。

Easy Continuous Integration Server如何定义其管道

Easy Continous Integration Server使用文件“EasyContinousIntegrationServer.exe.config”中定义的信息定义其管道。

查看此文件,在其开头,我们可以看到两个重要部分:

  1. 第一个定义了可能的插件:

    https://www.codeproject.com/KB/mentor/1273315/36_Config.png

    这里,我们有许多条目,其中一个键定义了一个接口名称和一个值,而其中定义了程序集名称和实现该接口的类。
    请注意,每个自定义接口必须从程序集“NugetLibrary”中定义的“IPipelineAction”接口继承,这一点很重要。
    每次需要使用该接口的操作时,“Easy Continous Integration Server”将尝试加载值中指定的类(如果尚未加载)并执行“IPipeLineAction”接口中定义的方法“Execute”。主要思想是,如果有人想要在“Easy Continous Integration Server”管道中定义一个新动作,那么就可以在自定义程序集中创建一个继承自“IPipeLineAction”接口的新接口及其类(使用.Net Framework)版本4.6或更高版本),并在文件'EasyContinousIntegrationServer.exe.config'顶部添加一个定义。
  2. 第二个定义了插件序列:

    https://www.codeproject.com/KB/mentor/1273315/37_Pipeline.png

    'Easy Continous Integration Server'
    管道由三个子部分组成。
    1. BuildActions:用于构建和测试解决方案。
    2. BuildInstallersActions:用于创建安装程序。
    3. FinalActions:用于存档结果文件。

 

原文地址:https://www.codeproject.com/Articles/1273315/How-to-obtain-continous-integration-using-Visual-S

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值