Добрый день.
Я решил попробовать посмотреть исходники 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)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Заменять надо не только StockSharp.Plaza, а все сборки.
Спасибо за ответ! Все сборки - это Algo, BusinessEnties, Plaza, Logging и Xaml для этого семпла? Я так понимаю, что в проекте Sources только они и относятся к работе с плазой? Я пробовал так делать - пересобирал Sources, заходил в \Sources\Plaza\bin\Debug , брал все эти пересобранные библиотеки и заменял их в \trunk\References. Получал аналогичную проблему.. :( Постоянно падаю в метод > private void ApplicationDispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)А вы сами не пробовали такое действие произвести? По сути проверить работоспособность собранных по исходникам библиотек с примерами? Спасибо.
Причем заметил еще забавную особенность. Если я беру экзешник семпла и кидаю в папку с пересобранными мною библиотеками - он <u>запускается и работает!!!</u> Но если я те же самые библиотеки подрубаю к проекту семпла и пробую скомпилировать проект - вылетают вышеописанные ошибки. И вообще волнует откуда взялось требование к WPFToolkit.Extended.dll? Подозреваю, что исходники - исходники какой-то старой версии не 4.1.8 и там есть какие-то особенности. Но хотелось бы с ними разобраться. Спасибо.
http://stocksharp.codeplex.com/SourceControl/changeset/22710
То есть какое получается решение? Точнее так вопрос поставлю - текущие выложенные исходники относятся к какой версии библиотеки?
А какие "все сборки" вы заменяете? Сборки - это все StockSharp.***.dll? Вспомогательные библиотеки вы не заменяете? Или вы просто меняете полностью папку References всегда? Спасибо.
Не всегда. Когда сам исходники пересобираю в очередной раз, конечно меняю только StockSharp.*.dll
VassilSanych, спасибо, что помогаете.
А вы не могли бы попробовать, если будет время, взять те исходники, которые выложены простым смертным, пересобрать и проверить. У меня почему-то ни под каким соусом не запускаются..(
Спасибо.
Просто вот уже первая озвученная проблема - текущие выложенные сорцы работают с WPFToolkit.Extended.dll, а семплы работают с Xceed.Wpf.Toolkit.dll. Короче сделал как вы сказали. Так как мне интересен только доступ к Plaza2 - я взял все библиотеки, которые скомпилировались из папки Plaza\bin и заменил их все в папке trunk\References. Потом просто подключил к SampleGUI WPFToolkit.Extended.dll и да, все заработало!
Спасибо!
А если из сырцов собрать либы S# и запихать их в новые примеры, естественно работать не будет. Это не значит что примеры нерабочие и это проблема. Они другие и не подходят к старым либам.
Думаю вопросов не возникнет, если в новые примеры запихать либы S# 4.0, почему не работает.
Если лениво разбираться, менять ссылки на рефы в примерах можно поступить проще. Скачать коммит с codeplex ДО коммита в котором была заменена либа WPFToolkit.Extended.dll.
А если из сырцов собрать либы S# и запихать их в новые примеры, естественно работать не будет. Это не значит что примеры нерабочие и это проблема. Они другие и не подходят к старым либам.
Думаю вопросов не возникнет, если в новые примеры запихать либы S# 4.0, почему не работает.
Если лениво разбираться, менять ссылки на рефы в примерах можно поступить проще. Скачать коммит с codeplex ДО коммита в котором была заменена либа WPFToolkit.Extended.dll. А можно как-то выяснить какой последний коммит полностью совместим с исходниками? Тупо как-то после каждой ошибки откатываться, пока она не пропадёт...
Спасибо за разъснения, Moadip. В том то и дело, что мне не лениво разбираться. Я пока сделал "топорным" методом - поменял все и все заработало. Но хотелось бы, конечно, понимать чего было бы достаточно поменять, чтобы все заработало. Грубо говоря где какие связи. В целом правильный ход действительно такой - при выходе новой версии исходников заменять все рефы, потому что мало ли что где какие связи новые появились, но потом, если правишь исходники под себя - естественно, как сказал VassilSanych, заменять тока стокшарп.***.длл. Наверное это самый безболезненный путь.