विज़ुअल स्टूडियो मुझे क्यों बताता है कि AddJsonFile () विधि परिभाषित नहीं है?


88

मैं वीएस अल्टिमेट 2015 पूर्वावलोकन का उपयोग करके ASP.NET 5 वेबएपीआई प्रोजेक्ट विकसित कर रहा हूं। मैं इस तरह से एप्लिकेशन को कॉन्फ़िगर करने की कोशिश कर रहा हूं (लाइन नंबर सिर्फ मार्गदर्शक हैं):

1 using Microsoft.Framework.ConfigurationModel;
2
3 public IConfiguration Configuration { get; private set; }
4 
5 public Startup()
6 {
7     Configuration = new Configuration()
8         .AddJsonFile("config.json")
9         .AddEnvironmentVariables();
10 }

लाइन 8 मुझे एक त्रुटि देता है: 'कॉन्फ़िगरेशन' में 'AddJsonFile' की परिभाषा नहीं है ...

गलत क्या है?

जवाबों:


210

Microsoft.Extensions.Configuration.Jsonयदि आप .AddJsonFile()विधि को कॉल करना चाहते हैं तो आपको NuGet पैकेज को शामिल करना होगा ।

देखें: https://github.com/aspnet/Configuration/tree/dev/src/Microsoft.Framework.ConfigurationModel.Json

आगे पढ़ने के लिए, यहाँ एक अच्छा ट्यूटोरियल है: ASP.NET vNext मूविंग पार्ट्स: IConfiguration


9
चूंकि RC2 अब है Microsoft.Extensions.ConfigurationऔरMicrosoft.Extensions.Configuration.Json
क्रिस एस

5
क्रिस द्वारा जोड़ी गई टिप्पणी को और निर्दिष्ट करने के लिए: 22.07.2016 तक आपको अपनी परियोजना में निर्भरता केMicrosoft.Extensions.Configuration.Json रूप में जोड़ना चाहिए। फाइल फ़ाइल, और फिर अपने स्टार्टअप.केएस वर्ग में जोड़ें । using Microsoft.Extensions.Configuration
टॉरमॉड ह्यूजेन

2
लिंक टूटे हुए हैं
WPFUser

यह उत्तर चार साल बाद भी उपयोगी है!
मेमोरियल

24

मुझे पता है कि यह थोड़ा पुराना है, लेकिन मैं सिर्फ इस मुद्दे में भाग गया जब मैं अपनी पहली asp.net कोर 1.0 रिक्त परियोजना का निर्माण करने का प्रयास कर रहा था। AddJsonFileविधि का उपयोग करने के लिए आपको Nuget केMicrosoft.Extensions.Configuration.Json माध्यम से अपनी परियोजना के लिए एक संदर्भ जोड़ना होगा ।

संदर्भ स्थापित करने के लिए पैकेज मैनेजर कंसोल में नीचे कमांड चलाएं:

PM> Install-Package Microsoft.Extensions.Configuration.Json

4

यदि किसी और को इससे परेशानी हो रही है, तो Microsoft ने 16 अगस्त 2015 को फ्रेमवर्क के इस हिस्से में परिवर्तन किए हैं । आपको निर्भरता के सही संस्करणों को आयात करना होगा और कॉन्फ़िगरेशन के निर्माण के नए तरीके पर स्विच करना होगा।

मेरे विन्यास में शामिल हैं:

{
  "webroot": "wwwroot",
  "version": "1.0.0-*",

  "dependencies": {
    "Microsoft.Framework.Runtime": "1.0.0-*",
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta7",
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta7",
    "Microsoft.AspNet.Mvc": "6.0.0-beta7",
    "Microsoft.Framework.Configuration": "1.0.0-beta7",
    "Microsoft.Framework.Configuration.Json": "1.0.0-*"
  },
...
}

यह कोड, इस प्रश्न से प्रेरित होकर आपकी सहायता करने के लिए किसी तरह से जा सकता है:

using System;
using Microsoft.AspNet.Builder;
using Microsoft.Framework.DependencyInjection;
using Messenger.Services;
using Microsoft.Framework.Configuration;
using Microsoft.Dnx.Runtime;
using Microsoft.AspNet.Hosting;

namespace Messenger
{
    public class Startup
    {
        public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
        {
            var configurationBuilder = new ConfigurationBuilder(appEnv.ApplicationBasePath)
                .AddJsonFile("config.json")
                .AddEnvironmentVariables();
            Configuration = configurationBuilder.Build();
        }

        public IConfiguration Configuration { get; set; }
    }
...

}

आशा है कि इससे सहायता मिलेगी।


Microsoft ने इसे फिर से बदल दिया - WBuck का उत्तर देखें
r590

1

Project.json के तहत आपको इसे निर्भरता के भीतर जोड़ना होगा

dependencies {
"Microsoft.Extensions.Configuration.Json": "1.0.0"
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.