【问题标题】:build dotnet solution in travis against netstandard20 and framework462在 travis 中针对 netstandard20 和 framework462 构建 dotnet 解决方案
【发布时间】:2017-10-19 07:40:05
【问题描述】:

TLDR;我有一个混合解决方案:NetStandard 2.0 用于我实际开发的库,.Net Framework 4.6.2(或 dotnetcore 2.0)用于测试。如何配置 travis.yml 来构建库和测试项目。

我实际上正在为一个客户端开发一个 rest api。我决定使用 .NET Standard 2.0 作为项目类型。由于它是一个基于 REST 的 api,我决定使用 Newtonsoft.Json 来反序列化和序列化内容。

出现问题:nuget 包 Newtonsoft.Json 10.0.3 目前不支持 NetStandard 2.0。但我发现提交 ab3315f 确实如此。因此,我克隆了 repo 并自己构建了 netstandard 库作为解决方法,直到新版本在 NuGet 中可用。

我在这篇文章之后将项目添加到 CI 系统 travis:https://rimdev.io/building-net-core-on-travis-ci/

现在我使用 Nunit 在我的解决方案中添加了一个测试项目,以便为我的库运行单元测试和集成测试。不,我面临 2 个问题,我需要解决一个:

问题 1:当我的测试项目以 .NET Framework 为目标时,我能够毫无问题地执行所有单元测试,但现在 travis 根据我的 travis.yml 抱怨没有安装单声道来正确构建完整的解决方案。 我的问题是:如何更改我的.travis.yml 以在解决方案中构建两种项目类型。

问题 2:当我的测试项目以 dotnetcore 为目标时,我的本地构建工作正常,但是当我尝试在本地执行测试时,出现运行时错误:

System.IO.FileNotFoundException : Could not load file or assembly 'Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null'.

这就是我现在没有测试 travis build 的原因,因为如果这是解决方案,我想让它首先在本地运行。不知道为什么找不到依赖。

对问题 1 或问题 2 有什么建议吗?

【问题讨论】:

    标签: build nunit travis-ci .net-standard


    【解决方案1】:

    我最终将 Newtonsoft.Json 10.0.3 的 NuGet 包添加到我的 dotnetcore 测试项目中,尽管它没有在那里直接使用。现在运行时错误消失了。因此,我也可以在本地和远程进行测试,并让 travis CI 构建我的项目。

    【讨论】:

    猜你喜欢
    • 2011-12-24
    • 1970-01-01
    • 2011-03-06
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多