2014-01-14 4 views
1

일부 문자열이 들어있는 Constants.resx라는 리소스 파일이 있습니다. 컨트롤러에서 Constants.resx 파일에 추가 한 새로운 문자열에 액세스하려고 시도하지만 컴파일러에서 인식하지 못합니다 (intellisense가 방금 추가 한 새 문자열을 표시하지 않음) 물론 입력 할 때, 오류가 표시됩니다. 내가 선 아래 추가 한 컨트롤러 헤더에서 mvc 4 컨트롤러에서 리소스 파일의 키에 액세스 할 수 없습니다.

는 :

Resources.Constants.NewString 

내가 상수에 다른 문자열에 액세스 :

using Resources; 

새로운 문자열에 액세스 할 수는 그냥 다음을 수행했다. resx 파일은 동일한 접근 방식을 사용하고 아무 문제없이 올바르게 인식되지만이 새로운 것은 아닙니다.

아이디어가 있으십니까?

업데이트 : App_GlobalResources 컨텍스트 메뉴에서 "Add> new item"을 선택하고 마지막으로 "Resource file"을 선택하여 내 mvc 4 응용 프로그램 용 리소스 파일을 추가했습니다.

내 리소스 파일의 속성은 다음과 같습니다

Build action: Content 
Copy to Output Directory: Do not copy 
Custom Tool: GlobalResourceProxyGenerator 
Custom Tool Namespace: (left blank) 

이 또한 내가 비주얼 스튜디오 2010 익스프레스 에디션을 사용하고 있습니다.

나는 컴파일러가 시스템에서 사용자 지정 도구 'GlobalResourceProxyGenerator'를 찾을 수 없다는 경고를 던지고있는 것을 볼 수 있습니다.

+1

에서 해당 리소스의 다른 문자열을보고 프로젝트를 정리하고 다시 작성하려고하면 –

+0

@MattBodily 나를 위해 작동하지 않습니다. Constants.resx.cs에 수동으로 추가해야했습니다. 그런 다음 작동합니다. 리소스 파일에 새 문자열을 추가 할 때마다 Constants.resx.cs가 다시 생성되지 않는 것 같습니다. 왜? – user1624552

+0

Visual Studio 2010 express는 GlobalResourceProxyGenerator를 지원하지 않으므로 ResXFileCodeGenerator (내부 참조를 원할 경우) 또는 PublicResXFileCodeGenerator (공용 참조를 원할 경우)로 변경해야합니다. MyProject.App_GlobalResources를 사용하는 경우 App_GlobalResources.Constants.MyKey 또는 Constants.MyKey를 사용하여 키 문자열에 액세스하십시오. 아래 링크를 참조하십시오 : http://www.mojoportal.com/Forums/Thread.aspx?pageid=5&t=6062~-1 – user1624552

답변

1

모든 리소스 파일의 네임 스페이스를 ViewResource와 같은 공통 네임 스페이스로 설정해야합니다. 그런 다음 리소스 파일의 액세스 한정자를 public으로 변경합니다. 이제 해당 리소스 파일에 액세스 할 수 있습니다.

빌드 조치 : 내용

복사 출력 디렉토리 : ViewResource

액세스 수정 :

사용자 지정 도구 네임 스페이스 GlobalResourceProxyGenerator : 공공 (

사용자 정의 도구를 복사하지 마십시오 모든 리소스 파일에서)

관련 문제