2011-02-25 15 views
7

2 개 (또는 여러 개)의 프로젝트간에 리소스 파일을 공유하는 방법은 두 가지를 원합니다. 그래서 C# - 프로젝트 간 리소스 파일 공유

, 나는 세 가지 프로젝트를했습니다, 다시 시작합니다 :

(정의로) 리소스 파일을 포함하는 개발 프로젝트 (CF.NET).

비어있는 두 개의 다른 프로젝트가 있습니다. 그러나 개발 프로젝트에 연결하는 것은 매번 다른 빌드이므로 개발 프로젝트를 수정하면 세 개의 프로젝트가 모두 업데이트됩니다. (csproj 파일 수정)

질문은 Resources 파일은 무엇입니까? 개발 프로젝트에서 액세스하려고 할 때 모든 리소스를 얻지 만 다른 두 가지를 시도 할 때 "MissingManifestResourceException"이 throw됩니다.

이 문제를 해결하는 방법에 대해 알고 싶습니다.

감사합니다.


[편집] 여기

내가 무슨 짓을했는지 있습니다 :

(자원 파일을 포함한) 모든 코드가 포함되어 있습니다 "RealProject"라는 이름의 프로젝트 라는 이름의 프로젝트를 만듭니다 만들기 " LinkedProject "에 아무것도 들어 있지 않습니다 (모든 파일을 삭제하고 다음과 같이 csproj 파일을 수정하십시오 :

<ItemGroup> 
    <Compile Include="..\RealProject\**\*.cs" /> 
    </ItemGroup> 

그래서 LinkedProject 디렉토리에 난 단지했습니다 :

  • [디렉토리] 빈
  • [디렉토리]
  • [파일] LinkedProject.csproj
  • 전체 LinkedProject는 RealProject 파일을 사용

을 obj와, 그것은 단지 다른 구성 빌드입니다. (이유는 여기를 참조하십시오 : C# - Code compiler for .NET & CF.NET)

해당 구성에 들어가면 리소스 파일 fr에 액세스 할 수 없습니다 om the RealProject ...

화면이 필요하거나 자세한 설명이 필요하면 질문하십시오.

이 코드

[편집]

, 그것은 작동, 자원 관리자는 좋은 어셈블리 이름에로드되지 않습니다, 그러나 그것은해야 더 나은 솔루션을 존재!

Assembly ass = Assembly.ReflectionOnlyLoadFrom(@"..\..\..\RealProject\bin\Debug\RealProject.dll"); 
ResourceManager manager = new ResourceManager("RealProject.Properties.Resources", ass); 

[솔루션]

것들 확인 :

  • LinkedProject을 RealProject
  • 추가 자료와 같은 네임 스페이스로
  • 청소를 링크로 모두 위로 귀하의 솔루션
  • 다시 작성하십시오

테스트!

답변

7

리소스 파일 as a link을 다른 두 프로젝트에 추가하고 프로젝트 파일에 정의 된대로 네임 스페이스가 동일한 지 확인하십시오.

+0

첫 번째 시도는 작동하지 않습니다. (내 다른 두 프로젝트는 이미 첫 번째 프로젝트와 연결되어 있습니다!) –

+0

프로젝트가 링크되어 있다고 정확히 할 때 무슨 뜻입니까? –

+0

내 편집을 참조하십시오.) –

1

다른 프로젝트의 기존 파일을 링크로 추가해보십시오.

+0

첫 번째 시도는 작동하지 않습니다. (내 다른 두 개의 프로젝트는 이미 첫 번째 프로젝트와 연결되어 있습니다!) –

관련 문제