Silverlight: как обращаться со стандартными сборками (часть 3) - PullRequest
1 голос
/ 31 июля 2010

При сборке приложения Silverlight4 сборка «Microsoft.Practices.Unity.Silverlight.dll» не помещается в отдельный zip-файл, а в XAP-файл.

Чтобы быть последовательным, вот ссылки на предыдущие вопросы темы «Как работать со стандартными сборками»: [ Silverlight: как работать со стандартными сборками : как работать со стандартными сборками] [ Silverlight: как обрабатывать стандартные сборки (часть 2) : как обрабатывать стандартные сборки (часть 2)] *

Вот список выполненных действий:

  1. Удаленные ссылки на сборку «Microsoft.Practices.Unity.Silverlight.dll» из проекта Silverlight и всех его библиотек;
  2. Скопировал этот dll в папку «C: \ Project \ DLL»;
  3. Файл "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>
    

(номер версии и токен открытого ключа берутся из самой сборки).

Добавлена ​​ссылка на сборку в проект Silverlight и 1 библиотеку классов Silverlight, которая используется проектом; Выполнена полная перестройка Silverlight-проектов, перестроен веб-сайт.

Я ожидаю, что файл "Microsoft.Practices.Unity.Silverlight.zip" появится в папке "ClientBin" на веб-сайте ... но это не так ... И я понятия не имею, почему..

Возможно, вы знаете что-то полезное?Если да, пожалуйста, дайте мне знать.

Спасибо!

1 Ответ

0 голосов
/ 01 августа 2010

Я скачал и установил 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>

У меня никогда не былоЯ использовал Unity Framework, поэтому я решил включить обе сборки в один ZIP-файл.Для этого я установил атрибут downloadUri элемента extension в одно и то же имя файла в обоих файлах extmap.xml.В этом случае я использовал Microsoft.Practices.Unity.Silverlight.zip .

Я добавил ссылку на сборку Microsoft.Practices.Unity.Silverlight из проекта Silverlight 4.0.

Далее я установил флажок: Уменьшить размер XAP с помощью кэширования библиотеки приложений в свойствах проекта моего проекта Silverlight.

Перестроить решение.В папке ClientBin веб-приложения хоста после перестройки был добавлен новый Zip-файл Microsoft.Practices.Unity.Silverlight.zip.

Я бы предложил следовать методу, который я использовал, и посмотрю, работает ли ондля тебя.Попробуйте перестроить решение с отключенной опцией (и очистите папку bin клиента).Очистите, и восстановите с проверенным и посмотрите, имеет ли это какое-либо влияние.

...