Travis-CI构建失败"类型或命名空间名称'扩展'命名空间中不存在"

时间:2017-09-08 18:46:50

标签: c# .net .net-core travis-ci

对Travis-CI来说还是新手,想知道它是否是我做过的事。我在Travis-CI中遇到了构建错误,但在本地没有。

示例.NET Core 2.0应用程序。通过构建我收到以下错误:

  

错误CS0234:类型或命名空间名称'扩展程序'在命名空间中不存在' Microsoft' (你错过了一个程序集引用吗?)

  

错误CS0246:类型或命名空间名称' IConfiguration'找不到(你错过了使用指令或汇编引用吗?)

这是指配置和作业日志的链接:

https://travis-ci.org/ovation22/DapperRepository/jobs/273068340

1 个答案:

答案 0 :(得分:15)

错误上方有一个警告:

  

/usr/share/dotnet/sdk/2.0.0/Microsoft.Common.CurrentVersion.targets(1987,5):警告MSB3245:无法解析此引用。无法找到程序集" Microsoft.Extensions.Configuration.Abstractions"。检查以确保磁盘上存在程序集。如果您的代码需要此引用,则可能会出现编译错误。 [/home/travis/build/ovation22/DapperRepository/Example.Repository/Example.Repository.csproj]

     

DapperRepository.cs(7,17):错误CS0234:类型或命名空间名称'扩展名'在命名空间中不存在' Microsoft' (你错过了一个程序集引用吗?)[/ home /travis/build/ovation22/DapperRepository/Example.Repository/Example.Repository.csproj]

     

DapperRepository.cs(16,33):错误CS0246:类型或命名空间名称' IConfiguration'找不到(你错过了使用指令或汇编引用吗?)[/ home /travis/build/ovation22/DapperRepository/Example.Repository/Example.Repository.csproj]

让我们看看Example.Repository.csproj

<ItemGroup>
  <PackageReference Include="Dapper" Version="1.50.2" />
</ItemGroup>

看起来很好。但Microsoft.Extensions.Configuration.Abstractions在哪里?让我们看起来有点低:

<Reference Include="Microsoft.Extensions.Configuration.Abstractions">
  <HintPath>C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.configuration.abstractions\2.0.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll</HintPath>
</Reference>

所以你告诉msbuild它在C:\Program Files可用。 Travis在Linux中运行它,这条路径显然不存在。

尝试在csproj中添加PackageReference,就像Dapper一样。这应该解决这个问题。