src/
Web/ <-- Microsoft.AspNetCore.Hosting.IHostingEnvironment.ContentRootPath, System.IO.Directory.GetCurrentDirectory()
project.json
web.config
wwwroot/ <-- Microsoft.AspNetCore.Hosting.IHostingEnvironment.WebRootPath
app.js
Views/Home/
Index.cshtml
bin/Debug/netcoreapp1.0/
Web.dll <-- System.AppContext.BaseDirectory
C:\inetpub\ <-- System.AppContext.BaseDirectory, Microsoft.AspNetCore.Hosting.IHostingEnvironment.ContentRootPath, System.IO.Directory.GetCurrentDirectory()
Web.dll
web.config
wwwroot/ <-- Microsoft.AspNetCore.Hosting.IHostingEnvironment.WebRootPath
app.js
Views/Home/
Index.cshtml
Why not set ContentRootPath = Directory.GetCurrentDirectory()?
Because current directory is settable by anything within the process. It is not guaranteed that a user service won't change this.