Asp.Net Core 지역화가 VSCode를 사용하여 작동하지 않음

Pavlospap

VSCode를 사용하여 Asp.Net Core API를 만들고 있습니다. 나는 하루 종일 현지화가 작동하도록 만드는 방법을 알아 내려고 노력하고 있지만 결과는 없습니다. Visual Studio 2015 Community Edition에서 똑같은 작업을 수행하면 모든 것이 잘 작동합니다. 하지만 VSCode는 아닙니다 ...

그래서 VSCode에서 가장 간단한 구조로 다음과 같은 매우 간단한 프로젝트를 만들었습니다.

여기에 이미지 설명 입력

Postman을 사용하여 http : // localhost : 5000 / app 에서 Http Get을 보냅니다 . 결과 json은 다음과 같습니다.

{
  "name": "test_value",
  "value": "test_value",
  "resourceNotFound": true
}

VS 커뮤니티 프로젝트는 비슷합니다.

여기에 이미지 설명 입력

결과 json은 다음과 같습니다 (올바른 것).

{
  "name": "test_value",
  "value": "This is the test value!",
  "resourceNotFound": false
}

Could anyone figure out why this is not working inside from VSCode? In both cases I am running Kestrel, both projects complile fine, both have the exact same following source code. The problem is there in a windows and also in a linux development enviroment. This drives me crazy!

project.json

{
  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.1",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
    "Microsoft.AspNetCore.Mvc": "1.0.1"
  },
  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6"
      ]
    }
  },
  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },
  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  },
  "tooling": {
    "defaultNamespace": "Trans"
  }
}

Program.cs

using System.IO;
using Microsoft.AspNetCore.Hosting;

namespace Trans
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var host = new WebHostBuilder()
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseStartup<Startup>()
                .Build();

            host.Run();
        }
    }
}

Startup.cs

using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;

namespace Trans
{
    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddLocalization(options => options.ResourcesPath = "Resources");
            services.AddMvc();
        }

        public void Configure(IApplicationBuilder app)
        {
            app.UseMvc();
        }
    }
}

AppController.cs

using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Localization;

namespace Trans.Controllers
{
    [Route("app")]
    public class AppController : Controller
    {
        IStringLocalizer<AppController> _localizer;

        public AppController(IStringLocalizer<AppController> localizer)
        {
            _localizer = localizer;
        }

        [HttpGet]
        public IActionResult Get()
        {
            return Json(_localizer["test_value"]);
        }
    }
}

Controllers.AppController.resx

<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 

    Version 2.0

    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.

    Example:

    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>

    There are any number of "resheader" rows that contain simple 
    name/value pairs.

    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.

    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:

    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.

    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <data name="test_value" xml:space="preserve">
    <value>This is the test value!</value>
  </data>
</root>
pavlospap

I finally figured this out!

The problem was that the name of the project's folder was different than the root namespace! The project's folder name was something like my-app. That was the name I picked for my Github repository. So my-app was the name of the project's folder that was created when I cloned the repository and, also, the name of the produced assembly (my-app.dll) which inherits it's name from the project folder. However, the root namespace that I picked was MyApp.

The reason I had no problem with VS Community was that when I created the project I picked for the solution the name MyApp and so that was the project's folder name and the root namespace too!

실제 문제가 폴더 이름인지 아니면 생산 된 어셈블리 이름인지 잘 모르겠습니다. 어셈블리 이름 인 것 같습니다.

따라서 현지화가 작동 하려면 프로젝트의 폴더 이름 (즉, 생성 된 어셈블리의 이름)이 루트 네임 스페이스와 동일해야합니다 !

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

ASP.NET Core 3.1 : 버전 3.1에서 공유 지역화가 작동하지 않음

분류에서Dev

ASP.Net Core Web API 사용자 지정 경로가 작동하지 않음

분류에서Dev

ASP.NET Core MVC Ajax가 제대로 작동하지 않음

분류에서Dev

asp.net core 5.0 RequestSizeLimit가 작동하지 않음

분류에서Dev

ASP.NET Core ID 설정이 작동하지 않음

분류에서Dev

ASP.NET Core 3.1 웹 API 역할 기반 권한 부여가 작동하지 않음

분류에서Dev

ASP.Net Core MVC로 마이그레이션 할 때 JSON 직렬화 / 역 직렬화가 작동하지 않음

분류에서Dev

Asp.Net Core에서 Bootstrap navbar 메가 메뉴가 작동하지 않음

분류에서Dev

배포시 ASP.NET Core 3.1 AWS Lambda Swagger 정의가 작동하지 않음

분류에서Dev

asp.net에서 웹 서비스 (.asmx)를 사용하여 JSON 개체 반환이 작동하지 않음

분류에서Dev

AngularJS 1.4.7 서비스를 사용하여 ASP.NET Web API 호출이 작동하지 않음

분류에서Dev

ASP .NET CheckBox에서 쿠키 설정이 JS를 사용하여 작동하지 않음

분류에서Dev

FromBody를 사용한 경로가 ASP.NET Core에서 작동하지 않습니다.

분류에서Dev

ASP.NET Core 사용자 지정 미들웨어 리디렉션이 작동하지 않음

분류에서Dev

AllowAnonymous가 작동하지 않는 ASP.Net Core 3.0

분류에서Dev

ASP.Net Core CookieRequestCultureProvider가 작동하지 않습니다.

분류에서Dev

asp.net Core 2.2의 응답 압축이 작동하지 않음

분류에서Dev

ASP.Net Core MVC Bootstrap 4 모달 양식 제출이 작동하지 않음

분류에서Dev

Asp.net Core 3 Web Api 게시 요청이 작동하지 않음

분류에서Dev

JWT 전달자 토큰 인증이 작동하지 않음 ASP Net Core 웹 API

분류에서Dev

asp.net core 3 응답 캐싱이 예상대로 작동하지 않음

분류에서Dev

ASP.NET Core 3에서 작동하지 않는 사용자 지정 권한 부여 필터

분류에서Dev

JSON / AJAX를 사용하여 Asp.net 그리드가 채워지지 않음

분류에서Dev

ashx를 사용하여 이미지 읽기가 asp.net에서 작동하지 않습니다.

분류에서Dev

사용자 프로필에 대한 asp.net core 3.0에서 레이아웃이 작동하지 않음

분류에서Dev

asp.net 사용자 지정 오류 페이지가 작동하지 않음

분류에서Dev

ASP.NET을 처음 사용하고이 @RenderPage가 작동하지 않는 이유를 모르겠습니다.

분류에서Dev

CSS를 사용하는 Gridview ASP.net의 마우스 오버가 작동하지 않음

분류에서Dev

5.7.0 사용자가 메일 킷 및 Strato 서버를 사용하여 asp.net core1에서 인증되지 않음

Related 관련 기사

  1. 1

    ASP.NET Core 3.1 : 버전 3.1에서 공유 지역화가 작동하지 않음

  2. 2

    ASP.Net Core Web API 사용자 지정 경로가 작동하지 않음

  3. 3

    ASP.NET Core MVC Ajax가 제대로 작동하지 않음

  4. 4

    asp.net core 5.0 RequestSizeLimit가 작동하지 않음

  5. 5

    ASP.NET Core ID 설정이 작동하지 않음

  6. 6

    ASP.NET Core 3.1 웹 API 역할 기반 권한 부여가 작동하지 않음

  7. 7

    ASP.Net Core MVC로 마이그레이션 할 때 JSON 직렬화 / 역 직렬화가 작동하지 않음

  8. 8

    Asp.Net Core에서 Bootstrap navbar 메가 메뉴가 작동하지 않음

  9. 9

    배포시 ASP.NET Core 3.1 AWS Lambda Swagger 정의가 작동하지 않음

  10. 10

    asp.net에서 웹 서비스 (.asmx)를 사용하여 JSON 개체 반환이 작동하지 않음

  11. 11

    AngularJS 1.4.7 서비스를 사용하여 ASP.NET Web API 호출이 작동하지 않음

  12. 12

    ASP .NET CheckBox에서 쿠키 설정이 JS를 사용하여 작동하지 않음

  13. 13

    FromBody를 사용한 경로가 ASP.NET Core에서 작동하지 않습니다.

  14. 14

    ASP.NET Core 사용자 지정 미들웨어 리디렉션이 작동하지 않음

  15. 15

    AllowAnonymous가 작동하지 않는 ASP.Net Core 3.0

  16. 16

    ASP.Net Core CookieRequestCultureProvider가 작동하지 않습니다.

  17. 17

    asp.net Core 2.2의 응답 압축이 작동하지 않음

  18. 18

    ASP.Net Core MVC Bootstrap 4 모달 양식 제출이 작동하지 않음

  19. 19

    Asp.net Core 3 Web Api 게시 요청이 작동하지 않음

  20. 20

    JWT 전달자 토큰 인증이 작동하지 않음 ASP Net Core 웹 API

  21. 21

    asp.net core 3 응답 캐싱이 예상대로 작동하지 않음

  22. 22

    ASP.NET Core 3에서 작동하지 않는 사용자 지정 권한 부여 필터

  23. 23

    JSON / AJAX를 사용하여 Asp.net 그리드가 채워지지 않음

  24. 24

    ashx를 사용하여 이미지 읽기가 asp.net에서 작동하지 않습니다.

  25. 25

    사용자 프로필에 대한 asp.net core 3.0에서 레이아웃이 작동하지 않음

  26. 26

    asp.net 사용자 지정 오류 페이지가 작동하지 않음

  27. 27

    ASP.NET을 처음 사용하고이 @RenderPage가 작동하지 않는 이유를 모르겠습니다.

  28. 28

    CSS를 사용하는 Gridview ASP.net의 마우스 오버가 작동하지 않음

  29. 29

    5.7.0 사용자가 메일 킷 및 Strato 서버를 사용하여 asp.net core1에서 인증되지 않음

뜨겁다태그

보관