← Zurück

Первый урок, с использованием S#.API 5.0 (VS 2019, NET 4.8)

Пытаюсь воспроизвести первый урок, с использованием S#.API 5.0 (VS 2019, NET 4.8), при попытке выбора подключениявыдаёт ошибку:

System.Reflection.TargetInvocationException HResult=0x80131604 Сообщение = Адресат вызова создал исключение. Источник = mscorlib Трассировка стека: в System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) в System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) в System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark) в System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) в System.Activator.CreateInstance(Type type, Object[] args) в Ecng.Common.TypeHelper.CreateInstance(Type type, Object[] args) в StockSharp.Messages.Extensions.CreateAdapter(Type adapterType, IdGenerator idGenerator) в StockSharp.Configuration.InMemoryMessageAdapterProvider.<>c__DisplayClass0_0.<.ctor>b__0(Type t) в System.Linq.Enumerable.WhereSelectListIterator2.MoveNext() в System.Linq.Buffer1..ctor(IEnumerable1 source) в System.Linq.Enumerable.ToArray[TSource](IEnumerable1 source) в StockSharp.Configuration.InMemoryMessageAdapterProvider..ctor(IEnumerable`1 currentAdapters) в StockSharp.Xaml.Extensions.#=zlN4YnUabrB4$(BasketMessageAdapter #=zdF$n2jM=) в StockSharp.Xaml.Extensions.Configure(BasketMessageAdapter adapter, Window owner, Boolean& autoConnect, SettingsStorage& windowSettings) в StockSharp.Xaml.Extensions.Configure(Connector connector, Window owner) в ABStrategy_042020.MainWindow.Setting_Click(Object sender, RoutedEventArgs e) в D:\S#\МоиПроекты\ABStrategy_042020\MainWindow.xaml.cs:строка 45 в System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) в System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) в System.Windows.UIElement.RaiseEvent(RoutedEventArgs e) в System.Windows.Controls.Primitives.ButtonBase.OnClick() в System.Windows.Controls.Button.OnClick() в System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e) в System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e) в System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) в System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) в System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) в System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent) в System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e) в System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) в System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) в System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) в System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) в System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args) в System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted) в System.Windows.Input.InputManager.ProcessStagingArea() в System.Windows.Input.InputManager.ProcessInput(InputEventArgs input) в System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport) в System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel) в System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled) в System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) в MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) в MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) в System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) в System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs) в MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) в MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg) в System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame) в System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame) в System.Windows.Application.RunDispatcher(Object ignore) в System.Windows.Application.RunInternal(Window window) в System.Windows.Application.Run(Window window) в System.Windows.Application.Run() в ABStrategy_042020.App.Main()

Внутреннее исключение 1: FileNotFoundException: Не удалось загрузить файл или сборку "Interop.CQG, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null" либо одну из их зависимостей. Не удается найти указанный файл.

Kommentare (20)

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

Support
Support

Добрый день

Уроки по миграции 5.0 пока в процессе. На данный момент они недоступны.

Алексей
Алексей Autor

Т.е. алгоритм по подключению предложенный в уроках не подходит для 5.0? Тогда вопрос, как мне подключиться к Квик 8, используя 5.0? Вариант с 4.4 для меня не подходит.

Support
Support

В версии 4.4.17 поддерживается QUIK 8.

Алексей
Алексей Autor

Support: В версии 4.4.17 поддерживается QUIK 8.

Повторяю вопрос: как мне подключиться к Квик 8, используя 5.0? ДРУГИЕ ВЕРСИИ S# МНЕ НЕ ПОДХОДЯТ!!!

Support
Support
  1. В вашем случае отсутствует файл Interop.CQG. По какой-то причине он не находится в директории exe программы. Вы можете скачать данный пакет еще раз и удостовериться, что файл там присутствует https://www.nuget.org/packages/StockSharp.Cqg.Com/
  2. Вы можете удалить использование StockSharp.Configuration.Adapters и подключать только те коннекторы, которые используете. Тогда StockSharp.Cqg.Com не будет присутствовать на диске.
  3. Мы обновили примеры до версии 5.0. Вы можете скачать их и протестировать.
Алексей
Алексей Autor

Support:

  1. В вашем случае отсутствует файл Interop.CQG. По какой-то причине он не находится в директории exe программы. Вы можете скачать данный пакет еще раз и удостовериться, что файл там присутствует https://www.nuget.org/packages/StockSharp.Cqg.Com/

Помогло удаление пакета StockSharp.Cqg.Com перезагрузка VS и заново установка пакета StockSharp.Cqg.Com. Файл появился, ошибка исчезла.

Support: 3) Мы обновили примеры до версии 5.0. Вы можете скачать их и протестировать.

Откуда брать скрипт lua? В примерах его нет, при загрузке пакетов с NuGet он не загружается.

Алексей
Алексей Autor

Оказывается скрипт Lua появляется в проекте (01_Connect_and_get_security) если дополнительно закачать пакет StockSharp.QuikLua. Потерял на этом много времени :( Теперь новая проблема, при запуске скрипта в Quik 8.3.2.4:

" ...iklua\5.0.5\contentFiles\any\any\StockSharp.Quik.lua:79: module 'StockSharp' not found: no field package.preload['StockSharp'] no file 'D:\S#\Обучение\Lessons_5.0\packages\stocksharp.quiklua\5.0.5\contentFiles\any\any\StockSharp.QuikLua.dll'"

Расположение скрипта в прикрепленном файле.

Support
Support

Вы не установили все файлы, от которых зависит QUIK плагин.

Рекомендуем воспользоваться нашей утилитой Installer инструкция по ссылке https://stocksharp.ru/news/265/rukovodstvo-po-nuget/ (в конце).

Алексей
Алексей Autor

Четвертый день безрезультатно пытаюсь воспроизвести первый урок с S# 5.0 и Quik 8. Это начинает уже раздражать, вроде все рекомендации тех. поддержки выполняю, а результат 0. Хотелось бы от поддержки более оперативных и подробных ответов, ведь многие здесь не большие знаток программирования и S#. Итак, вводные: Windows 10 Pro, WS 2019, .NET 4.8 FW, архивы после скачивания разблокировал, программы запускаются от имени администратора.

  1. Открыл Lessons_5.0 в VS, дождался закачки пакетов с Nuget, запускаю 01_Connect_and_get_security все ОК. Скрипта lua в Lessons_5.0 НЕТ, пакета StockSharp.QuikLua тоже НЕТ. Закрываю VS.
  2. По рекомендации Support воспользовался NugetInstaller. Сразу при запуске сразу выдаёт ошибку: «… Не удалось найти часть пути …» (см. прикрепленные файлы). Вставляю свой токен, указываю папку Quik, запускаю, происходит копирование и выскакивают два предупреждения (см. файл). Изменяю в NugetInstaller тип установки (Patch app…) и меня Выходную папку на папку с уроком Lessons_5.0, запускаю, ошибок нет. Скрипта lua в Lessons_5.0 НЕТ, пакета StockSharp.QuikLua тоже НЕТ.
  3. Открыл Lessons_5.0 в VS, через Nuget установил в 01_Connect_and_get_security пакет StockSharp.QuikLua. Появились два предупреждения: «несоответствие между архитектурой процессора проекта "MSIL", сборка которого выполняется, и архитектурой процессора ссылки "D:\S#\Lessons_5.0\packages\stocksharp.quiklua\5.0.5\lib\netcoreapp3.1\StockSharp.QuikLua.dll", "AMD64"…» (см. файл). Скрипт lua в Lessons_5.0 есть.
  4. Запускаю скрипт lua в Quik, ошибка: «...iklua\5.0.5\contentFiles\any\any\StockSharp.Quik.lua:79: module 'StockSharp' not found: no field package.preload['StockSharp'] no file 'D:\S#\Lessons_5.0\packages\stocksharp.quiklua\5.0.5\contentFiles\any\any\StockSharp.QuikLua.dll»
  5. При попытке запустить 01_Connect_and_get_security вылезает куча ошибок. (см. файл)

Что я делаю не так?

Support
Support

Скачайте обновленный NugetInstaller, пожалуйста. Так же исправлен NuGet пакет и вы можете удалить пакет StockSharp.QuikLua и добавить новый. После этого ошибка с компиляцией исчезнет.

Алексей
Алексей Autor

Support: Скачайте обновленный NugetInstaller, пожалуйста. Так же исправлен NuGet пакет и вы можете удалить пакет StockSharp.QuikLua и добавить новый. После этого ошибка с компиляцией исчезнет.

Скачал заново Lessons_5.0 Закачал новый NugetInstaller при запуске ОШИБКА. Установил файлы для Quik ПРЕДУПРЕЖДЕНИЕ. Установил файлы в папку Lessons_5.0. Открыл Lessons_5.0 в VS, через Nuget установил в 01_Connect_and_get_security последний пакет StockSharp.QuikLua. Появились два ПРЕДУПРЕЖДЕНИЯ. При запуске скрипта в Quik ОШИБКА. Обновил все пакеты в Lessons_5.0 предупреждения осталось.

Это уже РАЗДРАЖАЕТ! 😠

Support
Support

Алексей,

Вы делаете не то, о чем вам пишут. Скачайте NugetInstaller и установите коннектор в папку. Программа у вас выдает ошибку, что не видит директории, где сохранен логин-пароль. У вас эта директория есть на диске? Или программа не имеет доступа к данной директории?

Сегодня несколько пользователей установили наш коннектор согласно нашей инструкции и нашей программы.

Алексей
Алексей Autor

Support: и установите коннектор в папку.

Можно подробней, какой коннектор в какую папку?

Алексей
Алексей Autor

Support: Программа у вас выдает ошибку, что не видит директории, где сохранен логин-пароль. У вас эта директория есть на диске? Или программа не имеет доступа к данной директории?

Нет у меня нет этой директории, а где написано что её надо создать? И какой там должен быть пароль?

Support
Support

Предупреждения не являются ошибками. Установка через проект в VS у вас прошла, вам нужно только скомпилировать проект и в bin\Debug\net48 появятся все необходимые файлы.

Support
Support

https://stocksharp.ru/news/265/rukovodstvo-po-nuget/ В конце есть инструкция пользования программой с картинками. Сделайте все эти шаги по картинкам. В результат в папке появятся все необходимые файлы, включая lua скрипт, которые в последствии нужно запустить в терминале QUIK.

Алексей
Алексей Autor

Support: https://stocksharp.ru/news/265/rukovodstvo-po-nuget/ В конце есть инструкция пользования программой с картинками. Сделайте все эти шаги по картинкам. В результат в папке появятся все необходимые файлы, включая lua скрипт, которые в последствии нужно запустить в терминале QUIK.

Так я и стараюсь делать в соответствии с инструкцией. По первому пункту создал папку "StockSharp" в папке с Quik. По второму пункту "Для этого нужно выбрать папку с программой", выбрал папку с уроками "Lessons_5.0". (В инструкции на картинке указана корневая папка C:\Hidra) В чем тут ошибка?

Support
Support

Все настройки S# хранятся в Documents\UserName\StockSharp\ Если у вас отличается структура или настройки OS, то наши программы работать не будут.

Алексей
Алексей Autor

Support: Все настройки S# хранятся в Documents\UserName\StockSharp\ Если у вас отличается структура или настройки OS, то наши программы работать не будут. Можно узнать, где это сказано в видеокурсах или написано в инструкции?

Уважаемые Support, Михаил и другие сотрудники StockSharp, я очень ценю ваш труд и благодарен вам за проект StockSharp. Я торгую на бирже с конца прошлого века, вашими услугами пользуюсь с 2014 года, в биржевой торговле разбираюсь лучше, чем в программировании. Но я пытаюсь разбираться, читаю документацию и чат, слушаю курсы, покупаю техподдержку. За время сотрудничества с вами, понял, что слабое звено у вас, это документация, данный вопрос неоднократно поднимался в чате, но это не решается (возможно умышлено). Она часто устаревшая, неполная или написанная скорее для себя чем для тех кто недостаточно знаком с вашими продуктами (текущая ветка тому пример). Большая просьба, пишите пожалуйста более подробную документацию и инструкции, сбережете нервы и время пользователям и себе. Спасибо, что дочитали.

Алексей
Алексей Autor

Получилось