对Travis-CI来说还是新手,想知道它是否是我做过的事。我在Travis-CI中遇到了构建错误,但在本地没有。
示例.NET Core 2.0应用程序。通过构建我收到以下错误:
错误CS0234:类型或命名空间名称'扩展程序'在命名空间中不存在' Microsoft' (你错过了一个程序集引用吗?)
和
错误CS0246:类型或命名空间名称' IConfiguration'找不到(你错过了使用指令或汇编引用吗?)
这是指配置和作业日志的链接:
https://travis-ci.org/ovation22/DapperRepository/jobs/273068340
答案 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
一样。这应该解决这个问题。