Сообщество программистов Autodesk в СНГ

ADN Club => Revit API => Тема начата: Stalso от 13-06-2016, 15:45:33

Название: race on RCW cleanup
Отправлено: Stalso от 13-06-2016, 15:45:33
Здравствуйте. Решил попробовать 2017 sdk.

Создал плагин, на основе этого простенького кода: http://help.autodesk.com/view/RVT/2017/ENU/?guid=GUID-01F579CB-AB46-4C00-86E4-D189510D3774

Затем с удивлением узнал, что в 2017 Revit все плагины должны быть подписаны, а иначе он выбрасывает раздражающий диалог при каждом запуске. Создал я сертификат, как описано вот тут:
https://knowledge.autodesk.com/support/revit-products/getting-started/caas/CloudHelp/cloudhelp/2017/ENU/Revit-API/files/GUID-B9A067F4-234F-47F8-A5EE-0D84A93FA98E-htm.html


Затем добавил post-build event который подписывает мою dll при каждом построении проекта так , как описано вот тут: https://knowledge.autodesk.com/support/revit-products/getting-started/caas/CloudHelp/cloudhelp/2017/ENU/Revit-API/files/GUID-F4CD6AAE-FB9F-43B2-974D-06C15E1F08E8-htm.html . В итоге у меня получилась вот такая post build конфигурация

Код - Javascript [Выбрать]
  1. "C:\Program Files (x86)\Windows Kits\8.1\bin\x64\signtool" sign /f "C:\Windows\SysWOW64\MyCert.pfx" /p "123"  "$(TargetDir)$(TargetFileName)"
  2. copy "$(ProjectDir)*.addin" "$(ProgramData)\Autodesk\REVIT\Addins\2017"
  3. copy "$(ProjectDir)bin\debug\*.dll" "$(ProgramData)\Autodesk\REVIT\Addins\2017"
  4.  



Все это дело у меня заработало, диалог пропал. Но если запустить dll под дебагом а потом закрыть Revit (не прервать дебаг в Visual Studio а именно закрыт ревит), то вылетает предупреждение компилятора race on RCW cleanup

Если убрать post build команду, которая подписывает dll , то все работает. Что я делаю не так? Может кто сталкивался
Название: Re: race on RCW cleanup
Отправлено: Александр Ривилис от 13-06-2016, 16:39:49
то вылетает предупреждение компилятора race on RCW cleanup
Компилятора???
Название: Re: race on RCW cleanup
Отправлено: Stalso от 13-06-2016, 19:47:31
то вылетает предупреждение компилятора race on RCW cleanup
Компилятора???


Гм, ну пусть предупреждение  выдает Managed Debugging Assistan (MDA) . Не компилятор, а  дебаггер. Ваша точность в терминах очень похвальна, Александр. Это я без сарказма. На том же SO никто бы внимания не обратил. И все таки, вы сталкивались с такой ошибкой?
Название: Re: race on RCW cleanup
Отправлено: Александр Ривилис от 14-06-2016, 13:03:53
Гм, ну пусть предупреждение  выдает Managed Debugging Assistan (MDA) . Не компилятор, а  дебаггер.
Согласись, что это совершенно разные вещи. Одно дело, когда такое сообщение возникает на этапе компиляции и другое дело, когда оно возникает на этапе выполнения кода.

И все таки, вы сталкивались с такой ошибкой?
Нет. Но думаю, что тебе придётся с ней смирится и просто не обращать на неё внимание, т.к. это проблема не твоего кода, а взаимодействия Revit и отладчика.
Название: Re: race on RCW cleanup
Отправлено: Stalso от 14-06-2016, 13:05:12
Спасибо. Просто неприятно
Название: Re: race on RCW cleanup
Отправлено: Виктор Чекалин от 28-06-2016, 16:28:05
Хм. Поймал похожую ошибку но аж на Revit 2015. Похоже тут проблема не в Revit, а в обновлениях либо Windows либо Visual Studio.
Название: Re: race on RCW cleanup
Отправлено: Виктор Чекалин от 28-06-2016, 16:33:48
Поторопился я с выводами. Собственно проблема была всегда и отображение этого сообщения зависит от настроек Exception в Visual Studio. Я недавно копался и поставил вывод всех исключений, поэтому и отобразилось окно с этим исключением. Проблема (хотя собственно это и не проблема) решается очень просто. При появлении сообщения надо снять галочку, что в следующий раз не показывать сообщением при возникновении подобного вида исключения.

(https://s31.postimg.org/qz8l8m11j/2016_06_28_1828.png) (https://postimg.org/image/qz8l8m11j/)

Разбираться в причине появления исключения желания нет.

Название: Re: race on RCW cleanup
Отправлено: Александр Ривилис от 28-06-2016, 17:09:56
Разбираться в причине появления исключения желания нет.
Тем более, что с пользовательским кодом она не связана.