C # 애플리케이션에서 리소스와 임베디드 리소스의 차이점은 무엇입니까?


89

둘 중 하나를 언제 사용해야합니까?

내 앱에서 사용하는 모든 파일 (이미지, 사운드, xml 파일 등)이 .exe 파일 내에 있기를 원하므로 많은 폴더와 파일로 배포하지 않습니다.

정보에 대해서 감사드립니다.

답변:


82

"리소스"및 "콘텐츠"빌드 작업은 Uris를 사용하여 WPF 리소스에 액세스하는 것입니다. 그러나 "내장 자원"은 이전 기술을위한 것입니다. 그러나 두 옵션 모두 어셈블리에 리소스를 포함하지만 WPF에 사용되는 "리소스"옵션입니다.

MSDN은 여기에 자세한 설명을 제공합니다 .


네가 옳아! 내 WPF 프로젝트의 모든 이미지를 Resource로 설정하고 소스를 다시 빌드했습니다. 이제 디버그 폴더로 이동하면 파일을 어디서도 찾을 수 없습니다. 파일은 내가 원하는대로 .exe의 일부 여야합니다. 충분히 감사 할 수 없습니다! :)
Sergio Tapia

1
MSDN 링크가 끊어졌습니다. 여기에 추가 설명은 매우 좋을 것입니다.
Michael Harris

7

WPF 리소스 (빌드 작업 = Resource )는 핵심 .NET 프레임 워크에서 지원하는 포함 된 리소스를 활용하지만 Pack URI 를 통해 포함 된 리소스에 액세스하기위한 지원을 추가 합니다 . 에서 MSDN :

WPF 리소스 파일은 어셈블리 리소스에 대한 핵심 .NET Framework 지원을 사용하여 구성 할 수있는 포함되거나 연결된 리소스 유형과 동일하지 않습니다. WPF 리소스 파일은 핵심 .NET Framework 포함 리소스 지원을 활용하지만 Pack URI를 사용하여 WPF 리소스 파일에 액세스하는 기능은 네임 스페이스를 사용하는 것보다 쉽습니다.


2

MSDN에서보고 한 바와 같이

여러 프로젝트간에 응용 프로그램 리소스 (.resx) 파일을 공유해야하는 경우 포함 된 리소스가 최선의 선택입니다. 예를 들어 회사 로고, 상표 정보 등이 포함 된 공통 리소스 파일이있는 경우 포함 된 리소스를 사용하면 관련 리소스 데이터 파일이 아닌 .resx 파일 만 복사해야합니다.

포함 된 리소스를 직접 편집 할 수 없습니다. 포함 된 리소스를 편집하려고하면 항목을 편집하기 위해 링크 된 리소스로 변환하라는 메시지가 표시됩니다. 변환이 권장되지만 선택 사항입니다. 이를 내보내고 외부 프로그램에서 수정 한 다음 프로젝트로 다시 가져와야합니다.


4
이것은 질문에 대한 답이 아닙니다. 임베디드 리소스와 리소스의 차이점은 무엇입니까? 포함 된 리소스 주소에만 대답합니다.
Grokys 2009

3
질문의 텍스트는 "언제 둘 중 하나를 사용해야합니까?"라고되어 있습니다. 내가 대답 한 것 같다. 질문은 정말 두 가지입니다.
kiamlaluno 2009

1

문제가있는 곳을 더 정확하게 찾는 데 도움이 된 모든 보고서에 감사드립니다. 저에게 있어 작업 표시 줄에서 프로젝트 아이콘 으로 사용 된 이미지 는 리소스로 구축되고 콘텐츠로 구축되어야했습니다. 다른 모든 이미지는 문제없이 리소스로 빌드 할 수 있습니다.

이것이 미래에 도움이되기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.