2010-07-31 4 views
1

Silverlight4 응용 프로그램을 빌드 할 때 'Microsoft.Practices.Unity.Silverlight.dll'어셈블리가 별도의 파일 zip 파일에 저장되지 않으면 XAP 파일에 저장됩니다 대신.Silverlight : 표준 어셈블리 처리 방법 (파트 3)

하는 것은 일관성을 위해, 여기에 '어떻게 처리 할 수있는 표준 어셈블리'주제의 이전 질문에 대한 링크입니다 [Silverlight: how to handle standard assemblies : 표준 어셈블리를 처리하는 방법] [Silverlight: how to handle standard assemblies (part 2) : 표준 어셈블리 (2 부) 처리하는 방법]

을 여기

완료 조치의 목록입니다

    실버 라이트 프로젝트와 모든 도서관 'Microsoft.Practices.Unity.Silverlight.dll'어셈블리
  1. 삭제 참조;
  2. 이 DLL을 "C : \ Project \ DLL"폴더에 복사했습니다.
  3. "Microsoft.Practices.Unity.Silverlight.extmap.xml"파일은 다음과 같은 내용으로 폴더에 생성 :?>

    < XML 버전 = "1.0"

    <manifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
        <assembly> 
        <name>Microsoft.Practices.Unity.Silverlight</name> 
        <version>2.0.414.0</version> 
        <publickeytoken>31bf3856ad364e35</publickeytoken> 
        <relpath>Microsoft.Practices.Unity.Silverlight.dll</relpath> 
        <extension downloadUri="Microsoft.Practices.Unity.Silverlight.zip" /> 
        </assembly> 
    </manifest> 
    

(버전 번호와 공개 키 토큰은 어셈블리 자체에서 가져옵니다.)

  1. 어셈블리가 Silverlight 프로젝트에 추가되고 프로젝트에서 사용되는 Silverlight 클래스 라이브러리가 1 개 추가되었습니다.
  2. Silverlight 프로젝트를 완전히 다시 작성하고 웹 사이트를 다시 작성했습니다.

"Microsoft.Practices.Unity.Silverlight.zip"파일이 웹 사이트의 "ClientBin"폴더에 나타나기를 기대하지만 ... 그렇지 않습니다. 어떤 아이디어가 ..

아마 당신은 뭔가 도움이되는 것을 알고 있습니까? 그렇다면 알려 주시기 바랍니다.

감사합니다.

답변

0

Unity Framework 2.0을 다운로드하여 설치했습니다.

기본 설치 폴더에 두 개의 파일을 추가했습니다.

C:\Program Files (x86)\Microsoft Unity Application Block 2.0 for Silverlight\Bin 

Microsoft.Practices.Unity.Silverlight.extmap.xml :

<?xml version="1.0"?> 
<manifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <assembly> 
    <name>Microsoft.Practices.Unity.Silverlight</name> 
    <version>2.0.414.0</version> 
    <publickeytoken>31bf3856ad364e35</publickeytoken> 
    <relpath>Microsoft.Practices.Unity.Silverlight.dll</relpath> 
    <extension downloadUri="Microsoft.Practices.Unity.Silverlight.zip" /> 
    </assembly> 
</manifest> 

Microsoft.Practices.ServiceLocation.extmap.xml : 나는 '

<?xml version="1.0"?> 
<manifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <assembly> 
    <name>Microsoft.Practices.ServiceLocation</name> 
    <version>2.0.414.0</version> 
    <publickeytoken>31bf3856ad364e35</publickeytoken> 
    <relpath>Microsoft.Practices.ServiceLocation.dll</relpath> 
    <extension downloadUri="Microsoft.Practices.Unity.Silverlight.zip" /> 
    </assembly> 
</manifest> 

유니티 프레임 워크를 사용하지 않았기 때문에 두 어셈블리를 같은 ZIP 파일에 포함시키기를 원했습니다. 이를 위해 extension 요소의 downloadUri 속성을 두 extmap.xml 파일의 동일한 파일 이름으로 설정합니다. 이 경우 Microsoft.Practices.Unity.Silverlight.zip을 사용했습니다.

Silverlight 4.0 프로젝트에서 Microsoft.Practices.Unity.Silverlight 어셈블리에 대한 참조를 추가했습니다.

다음은 옵션을 확인했습니다. Silverlight 프로젝트의 프로젝트 속성에서 응용 프로그램 라이브러리 캐싱을 사용하여 XAP 크기를 줄입니다.

솔루션을 다시 작성하십시오. 호스트 웹 응용 프로그램의 ClientBin 폴더 내에 재구 성 후에 새 Zip 파일 Microsoft.Practices.Unity.Silverlight.zip이 추가되었습니다.

내가 사용한 방법을 따르고 그 방법이 효과가 있는지 확인해 보시기 바랍니다. 이 옵션을 선택하지 않은 채로 솔루션을 다시 빌드하고 클라이언트 bin 폴더를 지우십시오. 깨끗이하고 다시 검사하여 확인한 다음 효과가 있는지 확인하십시오.

+0

예, 같은 방법으로 처리했습니다 ... 불행히도 Microsoft.Practices.Unity.Silverligh 용 zip 파일을 만들지 않습니다. 나는 또한 선택을 취소하고 "Reduce ..."옵션을 다시 확인하려고 시도했다 : 아무것도 변경되지 않았다 ... :( – Budda