构建 C#、F# 或 Visual Basic 项目
本指南涵盖的内容 #
本指南涵盖了特定于 C#、F# 和 Visual Basic 项目的构建环境和配置主题。请确保先阅读我们的 教程 和 一般构建配置 指南。
社区支持的语言 #
C#、F# 和 Visual Basic 支持是 Travis CI 中的社区支持。如果您遇到任何问题,请在 Travis CI 问题跟踪器 中报告,并 CC @joshua-anderson、@akoeplinger 和 @nterry。
构建环境 #
目前,Travis 使用 Mono 或 .NET Core 运行时在 Linux 或 macOS 上构建您的 C#、F# 和 Visual Basic 项目。请注意,这些运行时未实现整个 .NET 框架,因此 Windows .NET 框架程序可能不完全兼容,需要移植。
概述 #
C#、F# 和 Visual Basic 项目的设置如下所示
当存在可选的 solution
键时,Travis 将运行 NuGet 包还原并构建给定的解决方案。
选择要测试的运行时和版本 #
Mono #
默认情况下,Travis CI 将使用最新的 Mono 版本。还可以针对特定版本的 Mono 测试项目。为此,请在 .travis.yml
中使用 mono
键指定版本。例如,要针对最新版本、3.12.0 和 3.10.0 进行测试
您可以从以下 Mono 版本中进行选择
版本 | 已安装的软件包(仅限 Linux,macOS 始终包含所有内容) |
---|---|
3.10.0 及更高版本 | mono-complete、mono-vbnc、fsharp、nuget、referenceassemblies-pcl |
3.8.0 | mono-complete、mono-vbnc、fsharp、nuget |
3.2.8 | mono-complete、mono-vbnc、fsharp |
2.10.8 | mono-complete、mono-vbnc |
无 | 禁用 Mono(如果您只想使用 .NET Core,请参见下文) |
注意:即使您指定了例如 3.12.0,构建中使用的版本实际上可能是 3.12.1,具体取决于 3.12.x 系列中的最新版本是什么(这是 Xamarin 存储库当前的限制)。
Alpha、Beta 和每周频道:要安装和针对即将发布的 Mono 版本进行测试,请指定 alpha
、beta
或 weekly
作为版本号。请将您在这些频道上遇到的错误报告给 Mono 项目,以便他们在发布之前修复这些错误。
.NET Core #
默认情况下,Travis CI 不会针对 .NET Core 进行测试。要针对 .NET Core 进行测试,请将以下内容添加到您的 .travis.yml
中。请注意,至少需要一个 script
<command>
才能构建。使用 dotnet restore
是一个很好的默认值。
注意:您需要指定 .NET Core SDK 的版本号(不是 .NET Core 运行时)。
SDK 的版本号可以在 .NET Core 网站 上找到。
针对 Mono 和 .NET Core 测试 #
您可以使用 matrix.include
针对 Mono 和 .NET Core 进行测试。此示例针对最新的 mono 和 .NET Core 进行测试
附加组件 #
Coverity Scan 附加组件不受支持,因为它目前仅适用于 Windows 上的 msbuild。
运行单元测试(NUnit、xUnit 等) #
要运行您的单元测试套件,您需要先安装一个测试运行程序。推荐的方法是从 NuGet 安装它,因为这在 基于容器的 Travis 基础架构上也有效(即它不需要 sudo
)。
以下示例显示了如何覆盖 install
和 script
来安装测试运行程序并将您的测试程序集传递给它以运行测试。
NUnit #
xUnit #
注意:Mono 中存在一个 错误,导致 xUnit 2.0 在测试执行后挂起,建议您在修复之前坚持使用 1.9.2。
使用解决方案级 NuGet 包 #
另一种方法是将您选择的控制台测试运行程序添加为解决方案级 NuGet 包。
对于许多 .NET 项目,这将是在 ./.nuget/packages.config
中找到的文件。
nuget restore solution-name.sln
也会安装该包。
请注意使用文件名扩展(*
)以避免必须硬编码测试运行程序的版本。
MSTest #
当针对 .NET Core 进行测试时,支持 MSTest 框架。示例
构建配置参考 #
您可以在我们的 Travis CI 构建配置参考 中找到有关 C# 的构建配置格式的更多信息。