Configuration Builder를 사용한 기본 경로 설정
의 애플리케이션 베이스 패스를 설정하려고 합니다.내가 만들고 있는 인터넷 웹 앱.Configuration Builder에서 오류가 계속 발생합니다.이게 제가 받는 오류입니다.
DNX,Version=v4.5.1 error CS1061: 'ConfigurationBuilder' does not contain a definition for 'SetBasePath' and no extension method 'SetBasePath' accepting a first argument of type 'ConfigurationBuilder' could be found (are you missing a using directive or an assembly reference?)
같은 에러가 발생할 것으로 추측됩니다..AddJsonFile()
그리고..AddEnvironmentVariables()
.제가 뭐 잘못한 것 있나요?프로젝트에 적절한 의존관계를 추가하지 않았습니까?startup.cs과 project.json을 동봉했습니다.
project.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);
}
}
에러는 에 있습니다.public startup
startup.cs의 바로 위에서 기능합니다.
나는 그 문제를 해결할 수 있었다.아직 해결하지 못한 경우 project.json에서 다음을 시도해 보십시오.다음을 추가합니다.
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0-*",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final"
효과가 있을 것이다.
아직 이 문제를 겪고 있는 사람이 있을지는 모르겠지만, 다음을 통해 dotnetcore 콘솔 프로젝트(netcoreapp 2.0)에서 이 문제를 해결할 수 있었습니다.
dotnet add package Microsoft.Extensions.Configuration.Json
다음 항목을 에 추가해 보십시오..csproj
파일:
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.2.0" />
</ItemGroup>
기타 고려해야 할 사항:
using Microsoft.Extensions.Configuration;
"using" 명령어가 없으면 Microsoft에서 확장 방법을 찾을 수 없습니다.내선번호배열.파일 확장자
문제가 갑자기 불거진 이유는 우리도 마찬가지였기 때문입니다.
using System.Configuration;
그리고 "Configuration Builder"와 이름이 충돌했습니다.를 추가합니다.
using Microsoft.Extensions.Configuration;
line... 삭제
using System.Configuration;
행을 지정한 후 시스템 아래의 모든 항목에 대해 완전한 수식을 수행합니다.배열.
가능한 문제가 하나 더 있는데...
나는 이것을 추가해야 했다.
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="3.0.0" />
컴파일 하려면 , 다음의 순서를 실행합니다.
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
...
편집: 이 답변은 몇 달 전에 작성했습니다만, 콘솔 앱용이라고 확신하고 있습니다.
를 실행하고 있는 경우.NET Core 1.x 또는NET Standard 1.x에서는 다음 명령을 실행해야 합니다.
dotnet add package Microsoft.Extensions.Configuration.Json -v 1.1.1
프로젝트가 다른 폴더 내에 있는 경우:
dotnet add .\src\MyProject package Microsoft.Extensions.Configuration.Json -v 1.1.1
...여기서 My Project란.csproj
파일.
프로젝트에 다음 항목을 추가합니다.json:
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0-*"
project.json 의존관계에 다음 항목을 추가해 보십시오.
"Microsoft.Extensions.Configuration": "1.0.0-*",
"Microsoft.Extensions.Configuration.Abstractions": "1.0.0-*",
project.json 의존관계에 다음 항목을 추가해 보십시오."Microsoft.Extensions.Configuration.CommandLine": "1.1.1",
또는 project.csproj:
<PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="1.1.1" />
이건 나한테 효과가 있었어.
또한 속성 창에서 Json 파일의 "Copy to Output Directory" 속성을 "Copy always"로 설정하는 것을 잊지 마십시오.
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsetting.json",
Optional: true, reloadOnChange: true);
}
위의 코드 행의 경우 다음 NuGet 패키지가 필요합니다.
Microsoft.extensions.configurations
Microsoft.extensions.configurations.json
Microsoft.extensions.Options.configurations
이건 내게 효과가 있었다.
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration" Version="6.0.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="6.0.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0" />
</ItemGroup>
언급URL : https://stackoverflow.com/questions/36001695/setting-base-path-using-configurationbuilder
'sourcecode' 카테고리의 다른 글
@font-face 새로 고침 시 Chrome에서 텍스트가 표시되지 않음...항상 그렇지는 않아? (0) | 2023.02.07 |
---|---|
JSON-Object를 사용하여 TypeScript 개체를 초기화하려면 어떻게 해야 합니까? (0) | 2023.02.07 |
JSON 오더 혼재 (0) | 2023.02.07 |
WooCommerce가 프로그래밍 방식으로 주문을 작성하고 지불로 리디렉션합니다. (0) | 2023.02.07 |
IIS에서 워드프레스 퍼머링크가 있나요? (0) | 2023.02.07 |