ASP.NET Core アプリケーションを CentOS7 にデプロイして実行すると、以下のエラーが出ました。
fail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[0] An unhandled exception has occurred: Cannot find compilation library location for package 'Microsoft.Win32.Registry'
この問題を解決するには、
<MvcRazorExcludeRefAssembliesFromPublish>false</MvcRazorExcludeRefAssembliesFromPublish>
を .csproj に追加します。
以下が、.csproj のサンプルになります。
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp2.0</TargetFramework> <MvcRazorExcludeRefAssembliesFromPublish>false</MvcRazorExcludeRefAssembliesFromPublish> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.5" /> </ItemGroup> <ItemGroup> <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.2" /> </ItemGroup> </Project>
この設定をした上で、再度デプロイして実行したらエラーが発生しなくなりました。
.NET Coreはなかなかいいのですが、完成度がもう少しかもしれませんね。