diff --git a/src/Microsoft.AspNet.Hosting/HostingUtilities.cs b/src/Microsoft.AspNet.Hosting/HostingUtilities.cs index 873fd87f..4baf19fd 100644 --- a/src/Microsoft.AspNet.Hosting/HostingUtilities.cs +++ b/src/Microsoft.AspNet.Hosting/HostingUtilities.cs @@ -17,7 +17,8 @@ using System; using System.IO; -using Microsoft.Framework.ConfigurationModel; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; namespace Microsoft.AspNet.Hosting { @@ -38,17 +39,25 @@ internal static Tuple SplitTypeName(string identifier) public static string GetWebRoot(string applicationBasePath) { + var webroot = applicationBasePath; try { - var config = new Configuration(); - config.AddJsonFile(Path.Combine(applicationBasePath, "project.json")); - var webroot = config.Get("webroot") ?? string.Empty; - return Path.GetFullPath(Path.Combine(applicationBasePath, webroot)); + using (var stream = new FileStream(Path.Combine(applicationBasePath, "project.json"), FileMode.Open, FileAccess.Read)) + { + using (var reader = new JsonTextReader(new StreamReader(stream))) + { + var project = JObject.Load(reader); + if (project.TryGetValue("webroot", out var token)) + { + webroot = Path.Combine(applicationBasePath, token.ToString()); + } + } + } } catch (Exception) { - return applicationBasePath; } + return Path.GetFullPath(webroot); } } } diff --git a/src/Microsoft.AspNet.Hosting/project.json b/src/Microsoft.AspNet.Hosting/project.json index de0e1d53..bcf21cbd 100644 --- a/src/Microsoft.AspNet.Hosting/project.json +++ b/src/Microsoft.AspNet.Hosting/project.json @@ -6,10 +6,10 @@ "Microsoft.AspNet.PipelineCore": "1.0.0-*", "Microsoft.AspNet.Security.DataProtection": "1.0.0-*", "Microsoft.Framework.ConfigurationModel": "1.0.0-*", - "Microsoft.Framework.ConfigurationModel.Json": "1.0.0-*", "Microsoft.Framework.DependencyInjection": "1.0.0-*", "Microsoft.Framework.Logging": "1.0.0-*", - "Microsoft.Framework.Runtime.Interfaces": "1.0.0-*" + "Microsoft.Framework.Runtime.Interfaces": "1.0.0-*", + "Newtonsoft.Json": "6.0.4" }, "frameworks": { "aspnet50": {},