[英]VS2015 ASP.NET 5 Empty project doesn't work, can't find ConfigurationBuilder.Build
試用新的VS2015項目。 我正在關注本教程,但缺少一些內容。 當我運行它時,出現500錯誤:
System.MissingMethodException: Method not found: 'Microsoft.Framework.Configuration.IConfiguration Microsoft.Framework.Configuration.ConfigurationBuilder.Build()'.
at Microsoft.AspNet.Loader.IIS.RuntimeHttpApplication.ApplicationStart(IHttpApplication application)
at Microsoft.AspNet.Loader.IIS.HttpApplicationBase.InvokeApplicationStart(IHttpApplication application)
.NET Framework version 4.0.30319.42000 | Microsoft.AspNet.Loader.IIS version 1.0.0-beta5-11951 | IIS version 10.0.10117.0 (fbl_srv2_iis_dev(sujitn).150512-1839) | Need help?
經過一番閱讀后,我發現您需要一個Configuration實例,盡管我發現的示例對我不起作用。 他們都將實例設置為“配置”字段,但是似乎不存在。 這些配置行全為紅色,因為名稱不存在:
public class Startup
{
public Startup() {
Configuration = new ConfigurationBuilder();
}
public void ConfigureServices(IServiceCollection services)
{
Configuration = new ConfigurationBuilder();
services.AddMvc();
}
public void Configure(IApplicationBuilder app)
{
Configuration = new ConfigurationBuilder();
app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello World!");
});
app.UseMvc(m => {
m.MapRoute(
name: "default",
template: "{controller}/{action}/{id?}",
defaults: new { controller = "Home", action = "Index" });
});
}
}
這是使用空項目中的默認Startup類。 我手動添加了gulp和angular節點模塊。 我一定想念什么,但我不知道該怎么辦...
更新:這些是我在Startup.cs中的用法:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Http;
using Microsoft.Framework.DependencyInjection;
using Microsoft.Framework.Configuration;
更新:這是我當前的project.json
文件(我尚未手動修改):
{
"webroot": "public",
"version": "1.0.0-*",
"dependencies": {
"Microsoft.AspNet.Mvc": "6.0.0-beta7",
"Microsoft.AspNet.Server.IIS": "1.0.0-beta5",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta5"
},
"commands": {
"web": "Microsoft.AspNet.Hosting --config hosting.ini"
},
"frameworks": {
"dnx451": { },
"dnxcore50": { }
},
"publishExclude": [
"node_modules",
"bower_components",
"**.xproj",
"**.user",
"**.vspscc"
],
"exclude": [
"public",
"node_modules",
"bower_components"
]
}
更新:更改后beta5
s到beta7
S,根據意見,我得到了過去,這ConfigurationBuilder
錯誤,並轉移到一個“無法加載文件或程序集Microsoft.Dnx.Host.Clr'或它的一個依賴”的錯誤,我懷疑這是另一個版本問題,我現在正在調查...但是我想那將是一個不同的問題。
作為由亨克默勒馬評論指出,原因ConfigurationBuilder.Build
沒有被發現,我的Configuration
線是紅色的是,我有好有壞包的版本(一些beta5的,有些β7的)。 該功能或者是在beta5之后的版本中添加的,或者由於庫不匹配而找不到。 升級到project.json
中的project.json
解決此問題。
我提到的后續錯誤也已修復 。
您在這里缺少了一些東西。 假設您使用的是beta7,並且需要config.json
文件:
首先在Startup
構造函數中構建一個IConfiguration
實例:
private IConfiguration Configuration { get; }
public Startup(IApplicationEnvironment appEnv)
{
var configurationBuilder = new ConfigurationBuilder(appEnv.ApplicationBasePath)
.AddJsonFile("config.json")
.AddEnvironmentVariables();
Configuration = configurationBuilder.Build();
}
不要忘記將Configuration
屬性添加到您的類。 此外,您還需要Microsoft.Framework.Configuration.Json
( 1.0.0-beta7
)。
現在,在ConfigureServices
方法中,您可以從中綁定設置。 例如:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<AppSettings>(Config.GetSection("AppSettings"));
// ...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.