← Назад

Исходные коды - почему-то не работают в 4.1.8

Добрый день.

Я решил попробовать посмотреть исходники S#. Скачал с кодплекса. Перестроил проект Sources. Взял полученную после перестройки библиотеку StockSharp.Plaza и заменил ею в папке \trunk\References аналогичную. Далее попытался запустить семпл SampleGUI для Plaza2 (версия 4.1.8). Семпл перестал запускаться. Стал выдавать ошибку

Ошибка 1 Неизвестная ошибка сборки, "Невозможно разрешить зависимую сборку для сборки "WPFToolkit.Extended, Version=1.8.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4", поскольку она не была предварительно загружена. При использовании API-интерфейсов ReflectionOnly зависимые сборки необходимо предварительно загружать или загружать по запросу при возникновении события ReflectionOnlyAssemblyResolve. Строка 40 позиция 4." C:\Users\user\Desktop\Данные\S#\CodePlex 4.1.8 Partial\trunk\Samples\Plaza\SampleGUI\MainWindow.xaml 40 4 SampleGUI, хотя ранее, до замены, семпл запускался и в реферансах не требовал WPFToolkit.Extended.dll.

Теперь я решил добавить то, что он стал требовать. Взял из проекта Sources библиотеку WPFToolkit.Extended.dll, подключил к SampleGUI. Семпл все равно не запускается, но уже не по причине той ошибки. Теперь он грохается грубо говоря из-за строчки в MainWindow.xaml.cs

public readonly PlazaTrader Trader = new PlazaTrader(); Причем что странно, после того, как я подключил собранную из Sources библиотеку, я теперь могу пошагово ходить по коду конструктора PlazaTrader - раньше не мог - что поменялось? Так вот если ставить брейкпоинт на вышеуказанной строчки и дальше топать пошагово ошибка вылетает после того, как подойдем к конструктору > public PlazaTrader(EndPoint address) Тут уже внутрь конструктора даже не заходит, а вызывается сразу метод > private void ApplicationDispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) Почему так происходит? Что я делаю не так?

Комментарии (15)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

esper
esper

Заменять надо не только StockSharp.Plaza, а все сборки.

FlashPlayer
FlashPlayer Автор

Спасибо за ответ! Все сборки - это Algo, BusinessEnties, Plaza, Logging и Xaml для этого семпла? Я так понимаю, что в проекте Sources только они и относятся к работе с плазой? Я пробовал так делать - пересобирал Sources, заходил в \Sources\Plaza\bin\Debug , брал все эти пересобранные библиотеки и заменял их в \trunk\References. Получал аналогичную проблему.. :( Постоянно падаю в метод > private void ApplicationDispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)А вы сами не пробовали такое действие произвести? По сути проверить работоспособность собранных по исходникам библиотек с примерами? Спасибо.

VassilSanych
VassilSanych

FlashPlayer: Все сборки - это Algo, BusinessEnties, Plaza, Logging и Xaml для этого семпла? Я заменяю ВООБЩЕ все сборки. Битые зависимости могут и в runtime неожиданно всплыть.

FlashPlayer
FlashPlayer Автор

Причем заметил еще забавную особенность. Если я беру экзешник семпла и кидаю в папку с пересобранными мною библиотеками - он <u>запускается и работает!!!</u> Но если я те же самые библиотеки подрубаю к проекту семпла и пробую скомпилировать проект - вылетают вышеописанные ошибки. И вообще волнует откуда взялось требование к WPFToolkit.Extended.dll? Подозреваю, что исходники - исходники какой-то старой версии не 4.1.8 и там есть какие-то особенности. Но хотелось бы с ними разобраться. Спасибо.

Moadip
Moadip

И вообще волнует откуда взялось требование к WPFToolkit.Extended.dll? Новые сборки S# работают с Xceed.Wpf.Toolkit.dll, который раньше назывался WPFToolkit.Extended.dll.

http://stocksharp.codeplex.com/SourceControl/changeset/22710

FlashPlayer
FlashPlayer Автор

То есть какое получается решение? Точнее так вопрос поставлю - текущие выложенные исходники относятся к какой версии библиотеки?

А какие "все сборки" вы заменяете? Сборки - это все StockSharp.***.dll? Вспомогательные библиотеки вы не заменяете? Или вы просто меняете полностью папку References всегда? Спасибо.

VassilSanych
VassilSanych

FlashPlayer: А какие "все сборки" вы заменяете? Сборки - это все StockSharp.***.dll? Вспомогательные библиотеки вы не заменяете? Или вы просто меняете полностью папку References всегда? Спасибо. Всю References.

VassilSanych
VassilSanych

Не всегда. Когда сам исходники пересобираю в очередной раз, конечно меняю только StockSharp.*.dll

FlashPlayer
FlashPlayer Автор

VassilSanych, спасибо, что помогаете.

А вы не могли бы попробовать, если будет время, взять те исходники, которые выложены простым смертным, пересобрать и проверить. У меня почему-то ни под каким соусом не запускаются..(

Спасибо.

VassilSanych
VassilSanych

FlashPlayer: VassilSanych, спасибо, что помогаете. А вы не могли бы попробовать, если будет время, взять те исходники, которые выложены простым смертным, пересобрать и проверить. У меня почему-то ни под каким соусом не запускаются..( Спасибо. А я с ними и работаю. Я на условия открытия основных исходников не согласился. Правда сэмплы давно не билдил, но там вроде отличий 4.1.9 от выложенных не наблюдалось.

FlashPlayer
FlashPlayer Автор

Просто вот уже первая озвученная проблема - текущие выложенные сорцы работают с WPFToolkit.Extended.dll, а семплы работают с Xceed.Wpf.Toolkit.dll. Короче сделал как вы сказали. Так как мне интересен только доступ к Plaza2 - я взял все библиотеки, которые скомпилировались из папки Plaza\bin и заменил их все в папке trunk\References. Потом просто подключил к SampleGUI WPFToolkit.Extended.dll и да, все заработало!

Спасибо!

Moadip
Moadip

Просто вот уже первая озвученная проблема - текущие выложенные сорцы работают с WPFToolkit.Extended.dll, а семплы работают с Xceed.Wpf.Toolkit.dll. А в чем собственно проблема то? Допустим завтра будет добавлена какая нибудь доп. либа, и все примеры будут переделаны под нее. С новыми сборками S# все будет работать.

А если из сырцов собрать либы S# и запихать их в новые примеры, естественно работать не будет. Это не значит что примеры нерабочие и это проблема. Они другие и не подходят к старым либам.

Думаю вопросов не возникнет, если в новые примеры запихать либы S# 4.0, почему не работает.

Если лениво разбираться, менять ссылки на рефы в примерах можно поступить проще. Скачать коммит с codeplex ДО коммита в котором была заменена либа WPFToolkit.Extended.dll.

XMbIPb
XMbIPb

Просто вот уже первая озвученная проблема - текущие выложенные сорцы работают с WPFToolkit.Extended.dll, а семплы работают с Xceed.Wpf.Toolkit.dll. А в чем собственно проблема то? Допустим завтра будет добавлена какая нибудь доп. либа, и все примеры будут переделаны под нее. С новыми сборками S# все будет работать.

А если из сырцов собрать либы S# и запихать их в новые примеры, естественно работать не будет. Это не значит что примеры нерабочие и это проблема. Они другие и не подходят к старым либам.

Думаю вопросов не возникнет, если в новые примеры запихать либы S# 4.0, почему не работает.

Если лениво разбираться, менять ссылки на рефы в примерах можно поступить проще. Скачать коммит с codeplex ДО коммита в котором была заменена либа WPFToolkit.Extended.dll. А можно как-то выяснить какой последний коммит полностью совместим с исходниками? Тупо как-то после каждой ошибки откатываться, пока она не пропадёт...

VassilSanych
VassilSanych

XMbIPb: А можно как-то выяснить какой последний коммит полностью совместим с исходниками? Тупо как-то после каждой ошибки откатываться, пока она не пропадёт... Исходники - это вроде что-то промежуточное между 4.1.7 и 4.1.8. Ближе к 4.1.7

FlashPlayer
FlashPlayer Автор

Спасибо за разъснения, Moadip. В том то и дело, что мне не лениво разбираться. Я пока сделал "топорным" методом - поменял все и все заработало. Но хотелось бы, конечно, понимать чего было бы достаточно поменять, чтобы все заработало. Грубо говоря где какие связи. В целом правильный ход действительно такой - при выходе новой версии исходников заменять все рефы, потому что мало ли что где какие связи новые появились, но потом, если правишь исходники под себя - естественно, как сказал VassilSanych, заменять тока стокшарп.***.длл. Наверное это самый безболезненный путь.