ASP.NET Core で Controller や View を別アセンブリにする

.NET Core 2.1 から Razor Class Library で出来るようになってます。
Reusable Razor UI in class libraries with ASP.NET Core | Microsoft Docs
※2.0 以前で出来るのかは調べてません。

VS で プロジェクトテンプレートから作成すると、.net standard 2.0 で作成されます。
どうしても .NET Core 2.1 で作成したい場合は、.NET Core クラスライブラリ でプロジェクトを作成して csproj を書き換えるとOK。

<Project Sdk="Microsoft.NET.Sdk">
...
</Project>

<Project Sdk="Microsoft.NET.Sdk.Razor">
...
</Project>

に変えて、NuGet で必要な ASP.NET Core のライブラリを落とせば出来上がり。
後は、このプロジェクトをプロジェクト参照等で参照しとけばOK~。