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


Добрый день.

Я решил попробовать посмотреть исходники 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

Фотография
Программист
Дата: 05.03.2013
Ответить


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

FlashPlayer

Фотография
Дата: 05.03.2013
Ответить


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

FlashPlayer

Фотография
Дата: 05.03.2013
Ответить


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

VassilSanych

Фотография
Дата: 05.03.2013
Ответить


FlashPlayer Перейти
Все сборки - это Algo, BusinessEnties, Plaza, Logging и Xaml для этого семпла?

Я заменяю ВООБЩЕ все сборки. Битые зависимости могут и в runtime неожиданно всплыть.

Спасибо: FlashPlayer

Moadip

Фотография
Автор статей Программист
Дата: 05.03.2013
Ответить


Цитата:
И вообще волнует откуда взялось требование к WPFToolkit.Extended.dll?

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

http://stocksharp.codeplex.com/SourceControl/changeset/22710
Спасибо:

FlashPlayer

Фотография
Дата: 05.03.2013
Ответить


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

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

VassilSanych

Фотография
Дата: 05.03.2013
Ответить


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

Всю References.

Спасибо:

VassilSanych

Фотография
Дата: 05.03.2013
Ответить


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

FlashPlayer

Фотография
Дата: 05.03.2013
Ответить


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

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

Спасибо.
Автор топика
Спасибо:

VassilSanych

Фотография
Дата: 05.03.2013
Ответить


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

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

FlashPlayer

Фотография
Дата: 05.03.2013
Ответить


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

Спасибо!
Автор топика
Спасибо:

Moadip

Фотография
Автор статей Программист
Дата: 05.03.2013
Ответить


Цитата:
Просто вот уже первая озвученная проблема - текущие выложенные сорцы работают с WPFToolkit.Extended.dll, а семплы работают с Xceed.Wpf.Toolkit.dll.

А в чем собственно проблема то?
Допустим завтра будет добавлена какая нибудь доп. либа, и все примеры будут переделаны под нее. С новыми сборками S# все будет работать.

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

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

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

FlashPlayer

Фотография
Дата: 05.03.2013
Ответить


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

XMbIPb

Фотография
Дата: 16.04.2013
Ответить


Moadip Перейти
Цитата:
Просто вот уже первая озвученная проблема - текущие выложенные сорцы работают с WPFToolkit.Extended.dll, а семплы работают с Xceed.Wpf.Toolkit.dll.

А в чем собственно проблема то?
Допустим завтра будет добавлена какая нибудь доп. либа, и все примеры будут переделаны под нее. С новыми сборками S# все будет работать.

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

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

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

А можно как-то выяснить какой последний коммит полностью совместим с исходниками?
Тупо как-то после каждой ошибки откатываться, пока она не пропадёт...

Спасибо:

VassilSanych

Фотография
Дата: 16.04.2013
Ответить


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

Исходники - это вроде что-то промежуточное между 4.1.7 и 4.1.8. Ближе к 4.1.7
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy