문제

Microsoft는 다양한 컨트롤에 대한 편리한 참조를 가지고 있습니다. System.Windows.controls 네임 스페이스 및 런타임에 컨트롤이 포함되어 있습니다..

런타임에 포함되지 않은 여기에 나열된 컨트롤의 경우 System.windows.controls 어셈블리에 대한 참조를 포함하고 Visual Studio에서 "Copy Local"을 선택해야합니다. 그것이 제가 현재하고있는 일이며 작동합니다.

그러나이 DLL을 포함시킴으로써 XAP 파일에 거의 80kb를 추가합니다 (그리고 내 Xap 파일은 110kB에 불과합니다). 내가 사용하는 유일한 컨트롤은 그리드 스플리터입니다. 그리드 스플리터 만 포함하는이 어셈블리의 응축 버전을 재건하는 방법이 있습니까?

도움이 되었습니까?

해결책

Silverlight 2에 대한 답을 방금 찾은 것 같습니다 ...

Silverlight 2 런타임 및 SDK 컨트롤의 소스 코드

그리고 나는 그것이 지금 나에게 효과가 있다고 생각합니다. 프로젝트를 진행하고 프로젝트에서 모든 불필요한 비트를 제외하고 재건축을 할 수 있어야합니다.

나는 여전히 Silverlight 2를 사용하고 있지만 몇 달 안에 3으로 전환 할 것입니다. 실버 라이트 3에서도 같은 것을 찾을 수없는 것 같습니다.

업데이트:

그래서 나는 약간의 후프를 뛰어 넘은 후 이것을 작동 시켰습니다. 처음에 나는 Microsoft에서 소스 프로젝트를 다운로드 한 다음 방금 물건을 제거하기 시작했습니다. 그러나 나는 솔루션을 만들 수 없다는 것을 알았습니다. 사실 나는 수정되지 않은 버전의 솔루션을 만들 수 없었습니다. 강한 이름 확인에 대한 오류가 발생했습니다. 프로젝트 속성의 "서명"섹션에서 강력한 이름 서명을 선택 취소하려고 시도했지만 동일한 오류가 발생했습니다. 어셈블리를 강력한 이름 verification skip List에 추가하고 마침내 오류를 지나갔습니다. 그러나 Silverlight 프로젝트에 새 어셈블리를 포함시키고 브라우저에서 실행하려고 할 때 빈 화면 (Silverlight Control은로드되지 않음)을 얻을 수 있습니다. 나는 아직도 왜 그런지 잘 모르겠지만 내가 뭔가를 놓치고 있다고 확신합니다.

마침내 나는 방금 새로운 프로젝트를 만들었습니다. 처음부터 이것을 해냈어 야하는 것 같습니다. GridSplitter를위한 빈 C# Silverlight 클래스 라이브러리를 만들어야했습니다. 그런 다음이 프로젝트에 그리드 플리터에 필요한 소스 파일을 추가하기 시작한 다음 네임 스페이스 및 어셈블리 이름을 System.Windows.controls로 설정했습니다. 이 프로젝트를 구축하고 실버 라이트 앱에서 언급 한 후 마침내 작동했습니다. 결과 : 60KB 절약.

나는 이것에 대해 조금 더 썼다 :

http://regexhero.net/blog/2009/09/optimizing-silverlight-xap-file.html

누군가가 그들을 원한다면, 나는 바로 여기 SDK의 컨트롤을 얻었습니다 ...

http://www.silverlightxap.com/controls/tagged/silverlight-sdk

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