Интерфейс для создания TC плагинов с помощью .NET Framework
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
Интерфейс для создания TC плагинов с помощью .NET Framework
Представляю на ваш суд новый интерфейс для разработки TC плагинов с использованием .NET Framework.
Линк на wincmd.ru
Линк на totalcmd.net
Это Open-Source проект, распространяется под лицензией MIT.
Страница проекта на SourceForge
Исходный код на SourceForge
Достаточно подробная документация (HTML, English) содержится в загружаемом архиве.
Жду ваших замечаний и предложений.
Линк на wincmd.ru
Линк на totalcmd.net
Это Open-Source проект, распространяется под лицензией MIT.
Страница проекта на SourceForge
Исходный код на SourceForge
Достаточно подробная документация (HTML, English) содержится в загружаемом архиве.
Жду ваших замечаний и предложений.
Regards,
Oleg Y
Oleg Y
Release version 1.2
Добавлено: Поддержка Lister плагинов с WPF интерфейсом.
Исправлено: Некорректная работа с плагинами, созданными под .NET Framework 4.0 и выше (CLR4).
Добавлено: Пример Lister плагина с WPF интерфейсом.
Добавлено: Пример FS и Lister плагинов, созданных под Framework 4.0 и выше (CLR4).
Добавлено: Поддержка Lister плагинов с WPF интерфейсом.
Исправлено: Некорректная работа с плагинами, созданными под .NET Framework 4.0 и выше (CLR4).
Добавлено: Пример Lister плагина с WPF интерфейсом.
Добавлено: Пример FS и Lister плагинов, созданных под Framework 4.0 и выше (CLR4).
Regards,
Oleg Y
Oleg Y
-
max_acoustic
- Сообщения: 1
- Зарегистрирован: Вт окт 20, 2015 21:03
Добрый день!
Пытаюсь использовать ваши интерфейсы. Создал сборку для .net 4.0, добавил в зависимости TcPluginInterface.dll. Создал класс - наследник ListerPlugin, переопределил метод Load. Собрал, выполнил WrapperBuilder.
WrapperBuilder падает с ошибкой
Я так понимаю, что это не критично. Проблема, судя по коду, заключается в том, что в программу захардкожен путь к zip-архиватору.
Так или иначе, я получаю два файла: wlx и wlx64. При попытке добавить их в TC он падает без симптомов. Подскажите пожалуйста, с какой стороны копать?
Пытаюсь использовать ваши интерфейсы. Создал сборку для .net 4.0, добавил в зависимости TcPluginInterface.dll. Создал класс - наследник ListerPlugin, переопределил метод Load. Собрал, выполнил WrapperBuilder.
WrapperBuilder падает с ошибкой
Код: Выделить всё
Installation archive
====================
ERROR: The system cannot find the file specifiedТак или иначе, я получаю два файла: wlx и wlx64. При попытке добавить их в TC он падает без симптомов. Подскажите пожалуйста, с какой стороны копать?
olegy
max_acoustic
Не удаётся заставить работать даже примеры.
Использую ContentSample.
Всё что делаю:
1. WrapperBuilder'у, по причине отсутствия SDK v6 скормил ildasm от SDK v7.0A (но при сборке файлов плагинов всё работает - файлы генерируются)
2. Сконвертировал проект в солюшен для VS 2015 (собственно это ничего не изменило)
3. Вызываю сборку - сборка выполняется, правда ругается на отсутствие rc.exe (не может собрать архив для установщика)
4. Подключаю плагин в списке плагинов TC (x64), сразу же вываливается ошибка (окно ".NET Plugin Error"):
В чём может быть дело. Единственное, что вызывает сомнения в моих действиях, это использование SDK v7 вместо SDK v6. Но хотелось бы узнать ваше мнение прежде чем искать и качать целый Windows SDK.
Тем более описание ошибки и наличие аналогичных проблем у других пользователей даёт основания полагать что проблема всё таки присутствовала изначально.
max_acoustic
Не удаётся заставить работать даже примеры.
Использую ContentSample.
Всё что делаю:
1. WrapperBuilder'у, по причине отсутствия SDK v6 скормил ildasm от SDK v7.0A (но при сборке файлов плагинов всё работает - файлы генерируются)
2. Сконвертировал проект в солюшен для VS 2015 (собственно это ничего не изменило)
3. Вызываю сборку - сборка выполняется, правда ругается на отсутствие rc.exe (не может собрать архив для установщика)
4. Подключаю плагин в списке плагинов TC (x64), сразу же вываливается ошибка (окно ".NET Plugin Error"):
Код: Выделить всё
RemotingException: Невозможно преобразовать тип аргумента "System.EventHandler`1[OY.TotalCommander.TcPluginInterface.PluginEventArgs]" в тип параметра "System.EventHandler`1[OY.TotalCommander.TcPluginInterface.PluginEventArgs]".
Server stack trace:
в System.Runtime.Remoting.Messaging.Message.CoerceArg(Object value, Type pt)
в System.Runtime.Remoting.Messaging.Message.CoerceArgs(MethodBase mb, Object[] args, ParameterInfo[] pi)
в System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
Exception rethrown at [0]:
в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
в OY.TotalCommander.TcPluginInterface.TcPlugin.add_TcPluginEventHandler(EventHandler`1 value)
в OY.TotalCommander.TcPluginTools.TcPluginLoader.GetTcPlugin(String wrapperAssembly, PluginType pluginType)
в OY.TotalCommander.WdxWrapper.ContentWrapper.get_Plugin()
в OY.TotalCommander.WdxWrapper.ContentWrapper.SetDefaultParams(PluginDefaultParams& defParams)
InvalidCastException: Объект должен реализовывать интерфейс IConvertible.
в System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
в System.Runtime.Remoting.Messaging.Message.CoerceArg(Object value, Type pt)
Тем более описание ошибки и наличие аналогичных проблем у других пользователей даёт основания полагать что проблема всё таки присутствовала изначально.
SDK v6 и VS2008 не спасли положения. Всё таки косяки где то во враперах/интерфейсе. Попытки поковырять исходники dll врапера, и даже просто скомпилить без изменений приводят различного рода ошибкам "совместимости" определить природу которых... как то лень.
Жаль, потенциально полезная разработка, лично мне сильно упростила бы разработку.
На всякий случай, то что я использовал:
Win 10 Pro x64
VS2015 Pro / VS2008 Pro
TC 8.52 x64 / TC 8.52a x64 / TC 8.52a x86
Жаль, потенциально полезная разработка, лично мне сильно упростила бы разработку.
На всякий случай, то что я использовал:
Win 10 Pro x64
VS2015 Pro / VS2008 Pro
TC 8.52 x64 / TC 8.52a x64 / TC 8.52a x86
ошибка выполнения
Олег, добрый день!
я скомпилировал ваш пример FSSample_clr4 и получил wfx файл, но при попытке добавить плагин в TC (v.8.01 x32) он выдает ошибку Exception in function DllMain, а при попытке использования падает с непонятной ошибкой.
Скажите, можно ли получить вашу консультацию по Skype, например?
Готов оплатить консультацию в размере 1-2 тыс. руб.
Ошибка при попытке использования:
я скомпилировал ваш пример FSSample_clr4 и получил wfx файл, но при попытке добавить плагин в TC (v.8.01 x32) он выдает ошибку Exception in function DllMain, а при попытке использования падает с непонятной ошибкой.
Скажите, можно ли получить вашу консультацию по Skype, например?
Готов оплатить консультацию в размере 1-2 тыс. руб.
Ошибка при попытке использования:
Код: Выделить всё
---------------------------
Total Commander 8.01
---------------------------
External exception E0434352.
External exception E0434352
Windows 7 SP1 6.1 (Build 7601)
Please report this error to the Author, with a description
of what you were doing when this error occurred!
Windows exception: E0434352
Stack trace:
759980D7
6545DE 65606E 6560E3 4DAF98 4DC0D8 638BD5
444C24 444AD1 4460A5 444A0F 446DD6 444AD1
446A22 >423F38 445FE3 423F38 445F51 423F38
4460A5 446A22 423F38 445FE3 423F38 429604
42969C 6D9F34
Raw:
6545DE 65606E 6560E3 6D0070 6AB50A 5F0059
5F0063 4E7EAD 446D7E 444AD1 446CF1 435E92
446033 4460A5 446A22 446A45 423F38 445FE3
423F38 637047 636B3F 637047 402E4A 444AD1
402E4A 444AD1 446CF1 4460A5 425C14 4460A5
446A22 446A45 423F38 445F51 423F38 446D9B
447158 4360F3 446A22 423F38 6B9E66 6B6A47
4DAF98 6D0070 670063 445F51 423F38 446D9B
444AD1 446CF1 4460A5 446A22 446A45 423F38
445FE3 423F38 45A5FE 4EBBA3 416A7B 445F51
Press Ctrl+C to copy this report!
Continue execution?
---------------------------
Да Нет
---------------------------
ответ на собственный вопрос
моя проблема решилась копированием dotNET dll плагина в корневой каталог, т.к. totalcmd.exe ищет ее в своем каталоге.
Пробовал на версии clr4
Пробовал на версии clr4