ASP.NET Core MVC の .NET Core アセンブリは何処からロードされるのか?

結論から言うと、

  • C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0 配下
  • C:\Users\<ユーザー名>\.nuget\packages

からロードされています。ASP.NET Core MVC アプリを動作させると、以下の分だけロードされている。

File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\Microsoft.CodeAnalysis.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\Microsoft.Win32.Registry.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\mscorlib.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.AppContext.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Buffers.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Collections.Concurrent.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Collections.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.ComponentModel.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Console.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Diagnostics.Debug.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Diagnostics.DiagnosticSource.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Diagnostics.Tracing.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Dynamic.Runtime.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Globalization.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.IO.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.IO.FileSystem.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.IO.FileSystem.Primitives.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.IO.FileSystem.Watcher.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Linq.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Linq.Expressions.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Net.Primitives.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Numerics.Vectors.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.ObjectModel.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Private.CoreLib.ni.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Private.Uri.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Reflection.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Reflection.Emit.ILGeneration.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Reflection.Emit.Lightweight.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Reflection.Extensions.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Reflection.Primitives.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Reflection.TypeExtensions.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Runtime.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Runtime.Extensions.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Runtime.Handles.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Runtime.InteropServices.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Runtime.InteropServices.RuntimeInformation.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Text.Encoding.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Text.Encoding.Extensions.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Threading.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Threading.Overlapped.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Threading.Tasks.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Threading.Thread.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Threading.ThreadPool.dll
File	C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.0\System.Threading.Timer.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Antiforgery\1.0.0\lib\netstandard1.3\Microsoft.AspNetCore.Antiforgery.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Authorization\1.0.0\lib\netstandard1.3\Microsoft.AspNetCore.Authorization.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Cors\1.0.0\lib\netstandard1.3\Microsoft.AspNetCore.Cors.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Cryptography.Internal\1.0.0\lib\netstandard1.3\Microsoft.AspNetCore.Cryptography.Internal.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.DataProtection.Abstractions\1.0.0\lib\netstandard1.3\Microsoft.AspNetCore.DataProtection.Abstractions.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.DataProtection\1.0.0\lib\netstandard1.3\Microsoft.AspNetCore.DataProtection.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Diagnostics\1.0.0\lib\netstandard1.3\Microsoft.AspNetCore.Diagnostics.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Hosting.Abstractions\1.0.0\lib\netstandard1.3\Microsoft.AspNetCore.Hosting.Abstractions.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Hosting.Server.Abstractions\1.0.0\lib\netstandard1.3\Microsoft.AspNetCore.Hosting.Server.Abstractions.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Hosting\1.0.0\lib\netstandard1.3\Microsoft.AspNetCore.Hosting.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Http.Abstractions\1.0.0\lib\netstandard1.3\Microsoft.AspNetCore.Http.Abstractions.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Http.Features\1.0.0\lib\netstandard1.3\Microsoft.AspNetCore.Http.Features.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Http\1.0.0\lib\netstandard1.3\Microsoft.AspNetCore.Http.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Mvc.Abstractions\1.0.0\lib\netstandard1.3\Microsoft.AspNetCore.Mvc.Abstractions.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Mvc.ApiExplorer\1.0.0\lib\netstandard1.6\Microsoft.AspNetCore.Mvc.ApiExplorer.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Mvc.Core\1.0.0\lib\netstandard1.6\Microsoft.AspNetCore.Mvc.Core.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Mvc.Cors\1.0.0\lib\netstandard1.6\Microsoft.AspNetCore.Mvc.Cors.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Mvc.DataAnnotations\1.0.0\lib\netstandard1.6\Microsoft.AspNetCore.Mvc.DataAnnotations.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Mvc.Formatters.Json\1.0.0\lib\netstandard1.6\Microsoft.AspNetCore.Mvc.Formatters.Json.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Mvc.Razor.Host\1.0.0\lib\netstandard1.6\Microsoft.AspNetCore.Mvc.Razor.Host.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Mvc.Razor\1.0.0\lib\netstandard1.6\Microsoft.AspNetCore.Mvc.Razor.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Mvc.TagHelpers\1.0.0\lib\netstandard1.6\Microsoft.AspNetCore.Mvc.TagHelpers.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Mvc.ViewFeatures\1.0.0\lib\netstandard1.6\Microsoft.AspNetCore.Mvc.ViewFeatures.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Mvc\1.0.0\lib\netstandard1.6\Microsoft.AspNetCore.Mvc.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Razor.Runtime\1.0.0\lib\netstandard1.5\Microsoft.AspNetCore.Razor.Runtime.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Razor\1.0.0\lib\netstandard1.3\Microsoft.AspNetCore.Razor.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Routing.Abstractions\1.0.0\lib\netstandard1.3\Microsoft.AspNetCore.Routing.Abstractions.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Routing\1.0.0\lib\netstandard1.3\Microsoft.AspNetCore.Routing.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Server.IISIntegration\1.0.0\lib\netstandard1.3\Microsoft.AspNetCore.Server.IISIntegration.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.Server.Kestrel\1.0.0\lib\netstandard1.3\Microsoft.AspNetCore.Server.Kestrel.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.AspNetCore.StaticFiles\1.0.0\lib\netstandard1.3\Microsoft.AspNetCore.StaticFiles.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.DotNet.InternalAbstractions\1.0.0\lib\netstandard1.3\Microsoft.DotNet.InternalAbstractions.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Extensions.Caching.Abstractions\1.0.0\lib\netstandard1.0\Microsoft.Extensions.Caching.Abstractions.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Extensions.Caching.Memory\1.0.0\lib\netstandard1.3\Microsoft.Extensions.Caching.Memory.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Extensions.Configuration.Abstractions\1.0.0\lib\netstandard1.0\Microsoft.Extensions.Configuration.Abstractions.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Extensions.Configuration.EnvironmentVariables\1.0.0\lib\netstandard1.3\Microsoft.Extensions.Configuration.EnvironmentVariables.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Extensions.Configuration.FileExtensions\1.0.0\lib\netstandard1.3\Microsoft.Extensions.Configuration.FileExtensions.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Extensions.Configuration.Json\1.0.0\lib\netstandard1.3\Microsoft.Extensions.Configuration.Json.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Extensions.Configuration\1.0.0\lib\netstandard1.1\Microsoft.Extensions.Configuration.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Extensions.DependencyInjection.Abstractions\1.0.0\lib\netstandard1.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Extensions.DependencyInjection\1.0.0\lib\netstandard1.1\Microsoft.Extensions.DependencyInjection.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Extensions.DependencyModel\1.0.0\lib\netstandard1.6\Microsoft.Extensions.DependencyModel.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Extensions.FileProviders.Abstractions\1.0.0\lib\netstandard1.0\Microsoft.Extensions.FileProviders.Abstractions.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Extensions.FileProviders.Physical\1.0.0\lib\netstandard1.3\Microsoft.Extensions.FileProviders.Physical.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Extensions.Localization.Abstractions\1.0.0\lib\netstandard1.0\Microsoft.Extensions.Localization.Abstractions.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Extensions.Logging.Abstractions\1.0.0\lib\netstandard1.1\Microsoft.Extensions.Logging.Abstractions.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Extensions.Logging.Console\1.0.0\lib\netstandard1.3\Microsoft.Extensions.Logging.Console.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Extensions.Logging.Debug\1.0.0\lib\netstandard1.3\Microsoft.Extensions.Logging.Debug.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Extensions.Logging\1.0.0\lib\netstandard1.1\Microsoft.Extensions.Logging.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Extensions.ObjectPool\1.0.0\lib\netstandard1.3\Microsoft.Extensions.ObjectPool.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Extensions.Options\1.0.0\lib\netstandard1.0\Microsoft.Extensions.Options.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Extensions.PlatformAbstractions\1.0.0\lib\netstandard1.3\Microsoft.Extensions.PlatformAbstractions.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Extensions.Primitives\1.0.0\lib\netstandard1.0\Microsoft.Extensions.Primitives.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Extensions.WebEncoders\1.0.0\lib\netstandard1.0\Microsoft.Extensions.WebEncoders.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.Net.Http.Headers\1.0.0\lib\netstandard1.1\Microsoft.Net.Http.Headers.dll
File	C:\Users\masuda\.nuget\packages\Microsoft.VisualStudio.Web.BrowserLink.Loader\14.0.0\lib\netstandard1.5\Microsoft.VisualStudio.Web.BrowserLink.Loader.dll
File	C:\Users\masuda\.nuget\packages\Newtonsoft.Json\9.0.1\lib\netstandard1.0\Newtonsoft.Json.dll
File	C:\Users\masuda\.nuget\packages\System.Collections.NonGeneric\4.0.1\lib\netstandard1.3\System.Collections.NonGeneric.dll
File	C:\Users\masuda\.nuget\packages\System.Collections.Specialized\4.0.1\lib\netstandard1.3\System.Collections.Specialized.dll
File	C:\Users\masuda\.nuget\packages\System.ComponentModel.Primitives\4.1.0\lib\netstandard1.0\System.ComponentModel.Primitives.dll
File	C:\Users\masuda\.nuget\packages\System.ComponentModel.TypeConverter\4.1.0\lib\netstandard1.5\System.ComponentModel.TypeConverter.dll
File	C:\Users\masuda\.nuget\packages\System.Runtime.Serialization.Primitives\4.1.1\lib\netstandard1.3\System.Runtime.Serialization.Primitives.dll
File	C:\Users\masuda\.nuget\packages\System.Text.Encodings.Web\4.0.0\lib\netstandard1.0\System.Text.Encodings.Web.dll

ASP.NET 廻りと MVC 廻りがごっそり NuGet からダウンロードされていることが分かります。たぶん、これプラス、自前の NuGet パッケージが入るのだと思う。

ロードしているアセンブリのチェックは、Process Explorer で。

image

ちなみに、F# 版の ASP.NET MVC アプリを作ると、

File	C:\Users\masuda\.nuget\packages\Microsoft.FSharp.Core.netcore\1.0.0-alpha-160629\lib\netstandard1.6\FSharp.Core.dll

だけが増えます。F# のアセンブリが NuGet で取れるようになっているので、以前のような PCL の混在であれこれと悩むことはなくなりそうな感じです。このあたりは、ぼちぼち調べていきます。

カテゴリー: ASP.NET パーマリンク