c# - 使用 ConfigurationBuilder 设置基本路径

标签 c# asp.net json asp.net-mvc

我正在尝试为我正在构建的 .Net Web 应用程序设置应用程序基本路径。我不断收到配置生成器的错误。这是我得到的错误。

DNX,Version=v4.5.1 错误 CS1061:“ConfigurationBuilder”不包含“SetBasePath”的定义,并且找不到接受“ConfigurationBuilder”类型的第一个参数的扩展方法“SetBasePath”(您是缺少 using 指令或程序集引用?)

我假设我的 .AddJsonFile().AddEnvironmentVariables() 会出现同样的错误。我做错什么了吗?我没有向我的 project.json 添加正确的依赖项吗?我已经附上了我的 startup.cs 和我的 project.json。

项目.json

{
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": true
},
"tooling": {
"defaultNamespace": "TripPlanner"
},

"dependencies": {
  "Microsoft.AspNet.StaticFiles":  "1.0.0-rc1-final",
  "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
  "Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
  "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final",
  "Microsoft.Framework.Configuration": "1.0.0-beta8",
  "Microsoft.Framework.DependencyInjection": "1.0.0-beta8"
  //"Microsoft.Extensions.PlatformAbstractions": "1.0.0-beta8"
},

"commands": {
  "web": "Microsoft.AspNet.Server.Kestrel"
},

"frameworks": {
  "dnx451": { },
  "dnxcore50": { }
},

"exclude": [
  "wwwroot",
  "node_modules"
],
"publishExclude": [
  "**.user",
  "**.vspscc"
 ]
}

startup.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.AspNet.Http;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.PlatformAbstractions;
using Microsoft.Framework.Configuration;
using Microsoft.Framework.DependencyInjection;
using TripPlanner.Services;



namespace TripPlanner
{
  public class Startup
  {
    public static IConfigurationRoot Configuration;

    public Startup(IApplicationEnvironment appEnv){
        var builder = new ConfigurationBuilder()
            .SetBasePath(appEnv.ApplicationBasePath)
            .AddJsonFile("config.json")
            .AddEnvironmentVariables();

        Configuration = builder.Build();
    }

    // This method gets called by the runtime. Use this method to add services to the container.
    // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
    public void ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services)
    {
        services.AddMvc();
        #if DEBUG
        services.AddScoped<IMailService, DebugMailService> ();
        #else
        services.AddScoped<IMailService, RealMailService> ();
        #endif
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app)
    {
       //app.UseDefaultFiles();
       app.UseStaticFiles();
       app.UseMvc(config =>
       {
           config.MapRoute(
               name: "Default",
               template: "{controller}/{action}/{id?}",
               defaults: new { controller  = "App", action = "Index"}
           );
       });

    }

    // Entry point for the application.
    public static void Main(string[] args) => Microsoft.AspNet.Hosting.WebApplication.Run<Startup>(args);
  }
}

错误出现在startup.cs 顶部附近的public startup 函数中。

最佳答案

我能够解决这个问题。如果你还没有解决,试试下面的 在 project.json 中。添加以下内容:

"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0-*",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final"

它应该可以工作

关于c# - 使用 ConfigurationBuilder 设置基本路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36001695/

相关文章:

C#考试应用程序计时器作弊问题

json - 带有 AngularJS 前端的 SPRING-DATA-REST 后端

c# - 使用 yield return 可以返回 JSON "live"吗?

c# - 订购最有效的键值对是什么?

c# - 如何将 C# 动态变量属性分配给另一个动态对象?

c# - Flurl 的 PostUrlEncodedAsync 忽略 JsonProperty 名称

c# - 在预定义时间后停止 asp.net c# 中的计时器

c# - Microsoft Office Interop Excel 不保存在 Windows Server 2008 中

javascript - 分别在javascript和asp.net中进行客户端验证和服务器端验证?

android - Spring 框架工作 : 500 Internal Server Error