← Zurück

Исходные коды - почему-то не работают в 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) Почему так происходит? Что я делаю не так?

War dieses Thema hilfreich?

Thema teilen

Kommentare (15)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

esper
esper

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

FlashPlayer
FlashPlayer Autor

Спасибо за ответ! Все сборки - это 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 Autor

Причем заметил еще забавную особенность. Если я беру экзешник семпла и кидаю в папку с пересобранными мною библиотеками - он <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 Autor

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

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

VassilSanych
VassilSanych

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

VassilSanych
VassilSanych

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

FlashPlayer
FlashPlayer Autor

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

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

Спасибо.

VassilSanych
VassilSanych

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

FlashPlayer
FlashPlayer Autor

Просто вот уже первая озвученная проблема - текущие выложенные сорцы работают с 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 Autor

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