Проблема с загрузкой через netload

Автор Тема: Проблема с загрузкой через netload  (Прочитано 19354 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Андрей Афонин

  • ADN OPEN
  • Сообщений: 10
  • Карма: 0
Re: Проблема с загрузкой через netload
« Ответ #30 : 19-12-2022, 11:59:59 »
Все бьюсь с проблемой загрузки...
Спасибо всем большое за полезные советы. Алексей, я почитал - в AutoCad .net Developer's guide в разделе 6: Command Definition указано, что флаги в commandFlags объединяются оператором &. И по реорганизации кода, выделении определенных методов, которые я буду использовать в основных командах, в отдельный класс, - учту совет, обязательно. Так конечно мне будет удобнее работать. Мне бы плагин запустить для начала ))))) и посмотреть, как оно хоть работает и сравнить с полным аналогом из предыдущего проекта моего на vb.net, который и запускается, и работает, а этот (я его чуть обновил и опять выложил).

Я и ссылки лишние почистил, пока внятно не могу объяснить, зачем я столько их добавил (в данном случае я просто копировал все из исходного проекта, те же самые ссылки, с идеей, что раз там работает - то ничего не менять). Проблема так и осталась:
1. среда разработки VS 2022 пишет "проблемы не найдены", настройки компиляции Debug x64, решение собрано "успешно";
2. при запуске команды netload  выдается ошибка "Не удалось загрузить сборку. Сведения об ошибке: System.Resources.MissingManifestResourceException: Не удалось найти ресурсы, соответствующие указанной культуре или нейтральной культуре.  Проверьте правильность внедрения или связывания "Useful_FunctionsCsh.Class1.resources" со сборкой "Useful_FunctionsCsh" во время компиляции, или убедитесь, что все необходимые сопутствующие сборки полностью подписаны и могут быть загружены." (картинку прилагаю)

Я и настройки проекта отдельной картинкой прилагаю, подозреваю, что где-то здесь "собака порылась"...

Если у кого-нибудь будет возможность помочь с решением - помогите, пожалуйста.

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1097
  • Карма: 172
Re: Проблема с загрузкой через netload
« Ответ #31 : 19-12-2022, 12:39:03 »
Попробуй. Основное что я сделал - это
1. Поменял объявление команд
2. Подключил NuGet-пакет (возможно, у тебя не сработает - тогда вернешь ссылки на соответствующие dll обратно
3. Все в статику
4. Удалил гарантированно ненужные ссылки и классы
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Lemieux

  • ADN OPEN
  • ****
  • Сообщений: 384
  • Карма: 21
Re: Проблема с загрузкой через netload
« Ответ #32 : 19-12-2022, 12:59:20 »
Все бьюсь с проблемой загрузки...
Спасибо всем большое за полезные советы. Алексей, я почитал - в AutoCad .net Developer's guide в разделе 6: Command Definition указано, что флаги в commandFlags объединяются оператором &. И по реорганизации кода, выделении определенных методов, которые я буду использовать в основных командах, в отдельный класс, - учту совет, обязательно. Так конечно мне будет удобнее работать. Мне бы плагин запустить для начала ))))) и посмотреть, как оно хоть работает и сравнить с полным аналогом из предыдущего проекта моего на vb.net, который и запускается, и работает, а этот (я его чуть обновил и опять выложил).

Я и ссылки лишние почистил, пока внятно не могу объяснить, зачем я столько их добавил (в данном случае я просто копировал все из исходного проекта, те же самые ссылки, с идеей, что раз там работает - то ничего не менять). Проблема так и осталась:
1. среда разработки VS 2022 пишет "проблемы не найдены", настройки компиляции Debug x64, решение собрано "успешно";
2. при запуске команды netload  выдается ошибка "Не удалось загрузить сборку. Сведения об ошибке: System.Resources.MissingManifestResourceException: Не удалось найти ресурсы, соответствующие указанной культуре или нейтральной культуре.  Проверьте правильность внедрения или связывания "Useful_FunctionsCsh.Class1.resources" со сборкой "Useful_FunctionsCsh" во время компиляции, или убедитесь, что все необходимые сопутствующие сборки полностью подписаны и могут быть загружены." (картинку прилагаю)

Я и настройки проекта отдельной картинкой прилагаю, подозреваю, что где-то здесь "собака порылась"...

Если у кого-нибудь будет возможность помочь с решением - помогите, пожалуйста.

Я же написал в чём ошибка.
Ответ кроется в описании ошибки и конструкторе атрибута.
Ты неправильные параметры передаёшь в конструктор [CommandMethod].

Оффлайн Андрей Афонин

  • ADN OPEN
  • Сообщений: 10
  • Карма: 0
Re: Проблема с загрузкой через netload
« Ответ #33 : 19-12-2022, 14:51:34 »
Огромное спасибо, Алексей и  Lemieux! Я не сразу врубился, в чем дело, и понял только, когда увидел исправленный код от Алексея.

Код - C# [Выбрать]
  1. [CommandMethod("Sdelay_PoperCS", CommandFlags.Modal & CommandFlags.UsePickSet & CommandFlags.Session)]

Внес эту правку - и у меня все запустилось.

С остальным - буду разбираться, я не все понял, для чего класс и методы сделаны static, и почему оператор "|" вместо "&".
Буду работать дальше, еще раз огромное спасибо!

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1097
  • Карма: 172
Re: Проблема с загрузкой через netload
« Ответ #34 : 19-12-2022, 15:02:08 »
static - для проверки. Такие вещи 100% загружаются
Насчет "|" vs "&" : https://help.autodesk.com/view/OARX/2023/ENU/?guid=GUID-F77E8FE0-8034-4704-93BD-F717608F8223
"|" - побитовое сложение, а "&" - логическое умножение : https://metanit.com/sharp/tutorial/2.22.php
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Lemieux

  • ADN OPEN
  • ****
  • Сообщений: 384
  • Карма: 21
Re: Проблема с загрузкой через netload
« Ответ #35 : 19-12-2022, 15:16:07 »
для чего класс и методы сделаны static
Если класс помечен как static, то все его члены тоже должны быть static. У статики есть свои ограничения.

Кстати, чем синглтон отличается от статического класса?

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1097
  • Карма: 172
Re: Проблема с загрузкой через netload
« Ответ #36 : 19-12-2022, 15:36:08 »
для чего класс и методы сделаны static
Если класс помечен как static, то все его члены тоже должны быть static. У статики есть свои ограничения.

Кстати, чем синглтон отличается от статического класса?
Лично я пока не знаю. А чем?
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Lemieux

  • ADN OPEN
  • ****
  • Сообщений: 384
  • Карма: 21
Re: Проблема с загрузкой через netload
« Ответ #37 : 19-12-2022, 15:55:45 »
Лично я пока не знаю. А чем?
Да я сам без понятия  ;D ждём объяснений от Андрей Афонин

PS Ещё интересно посмотреть поведение статического класса при использовании Utils.AddCommand().

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1097
  • Карма: 172
Re: Проблема с загрузкой через netload
« Ответ #38 : 19-12-2022, 16:04:52 »
На NET пока еще ни разу не определял команды динамически.
Off-Topic: показать
Сколько ж еще впереди-то, йо-майо?!
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 470
  • Карма: 63
Re: Проблема с загрузкой через netload
« Ответ #39 : 21-12-2022, 01:26:05 »
Цитировать
Кстати, чем синглтон отличается от статического класса?
у него есть конструктор

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1097
  • Карма: 172
Re: Проблема с загрузкой через netload
« Ответ #40 : 21-12-2022, 08:34:04 »
И все? А по поведению болт в болт одно и то же?
Что-то у меня подозрения, что SingleTone - это что-то из многопоточности
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Lemieux

  • ADN OPEN
  • ****
  • Сообщений: 384
  • Карма: 21
Re: Проблема с загрузкой через netload
« Ответ #41 : 21-12-2022, 09:41:34 »
Что-то у меня подозрения, что SingleTone - это что-то из многопоточности
Не путать с семафором.

у него есть конструктор
Кто мне мешает написать так?
Код - C# [Выбрать]
  1. public static class StaticClass
  2. {
  3.     static StaticClass()
  4.     {
  5.     }
  6.  
  7.     public static void Method()
  8.     {
  9.     }
  10. }

А у синглтона, на сколько мне известно, наоборот всегда прячат конструктор, чтобы экземпляр брать из метода или свойства.

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1097
  • Карма: 172
Re: Проблема с загрузкой через netload
« Ответ #42 : 21-12-2022, 10:07:19 »
Не, ребят, не так быстро! Мне б с однопоточностью еще доразобраться :) WPF, MVVM, MVC и теде - вот это вот все. :)
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 534
  • Карма: 117
Re: Проблема с загрузкой через netload
« Ответ #43 : 21-12-2022, 19:59:24 »
у него есть конструктор
И у того и того есть конструкторы.
https://metanit.com/sharp/tutorial/3.6.php

Кстати, чем синглтон отличается от статического класса?

Этот вопрос не имеет особого смысла. В паттернах главное понимать что этот паттерн (стандартное решение), используется для таких-то случаев, для таких случаев не подходит. И паттерно можно реализовать таким-то кодом, но код может быть изменен, главное подход.

К примеру у Вас есть настройки в программе, куда их можно деть? Да можно добавить в ресурсы проекта и т.д. Но куда Вы денете сохранение и загрузку настроек для программы? Возможно удобнее сделать класс Setting и внутри хранить настройки программы и методы Save и Load, все в одном месте. Далее возникает логичный вопрос, а сколько классов Setting у Вас должно быть в программе? Один? Тогда Вам нужен паттерн синглтон.

Далее вопрос как его реализовать, статическим классом или к примеру https://metanit.com/sharp/patterns/2.3.php, это не так Важно.
По сути вы уже выбрали паттерн синглтон, понимая, что нужен единственный объект, а реализацию можете выбрать любую из двух или модифицировать под потребности.