내 실버 라이트 프로젝트의 디렉토리 구조는 다음과 같다 :실버 : 웹 클라이언트와 로컬 파일을 다운로드
\Bin
- MainModule.xap
- \Images
--- Image1.png
--- Image2.png
- \Modules
--- SubModule.xap
내가 직접하거나 웹 서버를 통해 또는 Visual Studio를 통해 실행할 수 있어야합니다 (디버깅 목적은 다운로드를 우회하기를 원함). 내 미디어 로딩 코드에서
나는 다음과 같이 수행
if (runningLocally)
{
var bitmapImage = new BitmapImage();
bitmapImage.UriSource = new Uri("Images/Image1.png", UriKind.Relative);
var image = new Image();
image.Source = bitmapImage;
}
else
{
WebClient wc = new WebClient();
wc.OpenReadCompleted += (s, e) =>
{
var bitmapImage = new BitmapImage();
bitmapImage.SetSource(e.Result);
var image = new Image();
image.Source = bitmapImage;
};
wc.OpenReadAsync(new Uri("Images/Image1.png", UriKind.Relative));
}
이 이미지 작동을하지만, 나는 또한 단지 주택 UserControl
의 회합이있는 하위 모듈이 있습니다. Silverlight에는 디스크를 읽을 수있는 기능이 없기 때문에 로컬에서 실행 중인지 여부에 관계없이 XAP을 "다운로드"해야한다는 사실에 자신을 사퇴했습니다.
System.Net.WebException: An exception occurred during a WebClient request. ---> System.NotSupportedException: The URI prefix is not recognized.
실행할 때 내 서브 모듈의 라이트 XAP을 얻을 수있는 방법 (그렇지 않으면 웹 클라이언트 또는) 거기 : 나는 로컬 프로젝트를 실행하고 나는 예외를 얻을 XAP을 다운로드 할 WebClient
를 사용하려고하면 문제이다 실버 라이트 프로젝트는 웹 서버를 직접 타격하지 않고 직접 할 수 있습니까?
편집 :
나는 또한 DeploymentCatalog
와 MEF를 사용하여 시도하고 나는 예외를하지 않는 동안, 아무것도 이제까지 내가에만이 같은 문제가 가정 할 수 작곡없는 얘기를 깜빡 했네요.