Где хранятся сборки Silverlight при запуске файла xap?

В настоящее время у нас есть файл XAP, содержащий Foo.dll, и другой файл XAP (с совершенно другим именем), содержащий обновленную версию Foo.dll (но с тем же номером версии).

Когда мы запускаем второй файл XAP, создается впечатление, что среда выполнения Silverlight на клиенте выбирает старую версию Foo.dll из первого файла XAP.

Кто-нибудь знает, где среда выполнения Silverlight распаковывает файл xap перед запуском его содержимого? Или если среда выполнения выполняется в одном домене приложения, что может объяснить эти ошибки?


person Kye    schedule 01.06.2010    source источник
comment
Прежде чем приступить к этому, вы можете превратить это в более позитивное утверждение. Убедитесь, что это происходит, иначе вы можете напрасно тратить время.   -  person AnthonyWJones    schedule 01.06.2010


Ответы (3)


Это всегда один домен приложения, пока вы не создадите новый. Укажите номер версии в AssemblyInfo.cs, затем используйте Reflection, чтобы получить его из приложения SLV.

person Daniel Bern    schedule 01.06.2010

Просто вы знаете, что файл XAP — это не что иное, как файл ZIP, поэтому вы всегда можете дважды переименовать файл xap в zip и проверить содержимое второго файла, чтобы убедиться, что он имеет правильную dll. Я не уверен, как Silverlight ищет dll, я позволю кому-нибудь ответить на эту часть.

person Nair    schedule 01.06.2010
comment
Ага. Я знаю, что один файл xap имеет неправильную версию, но не могу объяснить, почему эта версия внезапно влияет на другой файл xap. Я распаковал оба, чтобы проверить. - person Kye; 01.06.2010

Попробуйте подписать свои сборки.

Если вы этого не сделаете, система не сможет узнать, какая версия какая. Неподписанное имя, которое используется для разрешения сборки, не содержит версию версии сборки, в то время как подписанная сборка содержит (я думаю).

person R4cOOn    schedule 01.06.2010