문제

여러 프로젝트로 구성된 asp.net 응용 프로그램의 지역화 작업을 진행 중입니다.

이를 위해 이러한 여러 프로젝트에서 사용되는 몇 가지 문자열이 있습니다.당연히 각 프로젝트에 리소스 파일 복사본이 하나만 있는 것을 선호합니다.

리소스 파일에는 네임스페이스가 없기 때문에(적어도 내가 알 수 있는 한) 일반 클래스처럼 액세스할 수 없습니다.

동일한 솔루션 내에서 다른 프로젝트의 resx 파일을 참조할 수 있는 방법이 있습니까?

도움이 되었습니까?

해결책

클래스 라이브러리 프로젝트를 만들고 여기에 리소스 파일을 추가한 다음 해당 어셈블리에서 공통 리소스를 참조하면 됩니다.

다른 팁

나는 솔루션의 모든 프로젝트에서 어셈블리 info.cs 파일을 공유하기 전에 이 솔루션을 사용했으며 리소스 파일에서도 동일하게 작동할 것이라고 가정했습니다.

각 개별 프로젝트/클래스 라이브러리에 연결된 파일을 만듭니다.복사본은 하나만 있으며 모든 프로젝트는 컴파일 타임에 링크된 파일을 통해 코드에 대한 참조를 갖게 됩니다.코드를 복제하지 않고 공유된 비공개 리소스를 해결하는 매우 우아한 솔루션입니다.

<Compile Include="path to shared file usually relative">
  <Link>filename for Visual Studio To Dispaly.resx</Link>
</Compile>

해당 코드를 csproj 파일의 컴파일 항목 그룹에 추가한 다음 경로를 resx 파일의 실제 경로로 바꾸면 파일을 열 수 있습니다.

하나의 프로젝트 파일에 대해 이 작업을 수행하면 csproj를 해킹하지 않고도 링크된 파일을 복사하여 다른 프로젝트에 붙여넣을 수 있습니다.

이와 같은 상황을 관리하는 방법에 대한 유용한 조언은 여기에서 확인할 수 있습니다.

http://www.codeproject.com/KB/dotnet/Localization.aspx

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top