Travis-CIはまだ新しく、私がやっていることかどうかを確認したいと考えていました。 Travis-CIでビルドエラーが発生しますが、ローカルでは発生しません。
.NET Core 2.0アプリのサンプル。ビルドを実行すると、次のエラーが表示されます。
エラーCS0234:タイプまたは名前空間名 'Extensions'が名前空間 'Microsoft'に存在しません(アセンブリ参照がありませんか?)
そして
エラーCS0246:タイプまたは名前空間名 'IConfiguration'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)
ここに設定とジョブログへのリンクがあります:
https://travis-ci.org/ovation22/DapperRepository/jobs/27306834
エラーのすぐ上に警告があります:
/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:タイプまたは名前空間名 'Extensions'が名前空間 'Microsoft'に存在しません(アセンブリ参照がありませんか?)[/ home/travis/build/ovation22/DapperRepository/Example.Repository/Example.Repository.csproj]
DapperRepository.cs(16,33):エラーCS0246:タイプまたは名前空間名 'IConfiguration'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)[/ 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
を追加してみてください。これで修正されるはずです。