Здравствуйте, коллеги!
По работе возникла необходимость адаптировать приложение под AutoCAD 2015.
Если коротко – после выполнения всех рекомендаций, приложение успешно загружается и работает. Но, при попытке вызвать редактор CUI, происходит исключение:
System.ArgumentNullException: Значение не может быть неопределенным.
Имя параметра: stream
в System.Resources.ResourceSet..ctor(Stream stream)
в Autodesk.AutoCAD.Customization.MyResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents)
в System.Resources.ResourceManager.GetString(String name, CultureInfo culture)
в Autodesk.AutoCAD.Customization.CustomizationSection.FillPropertyBag(IPropertyBag bag)
в Autodesk.AutoCAD.Customization.PropertyControl.SetCustomizationSectionProperties(CustomizationSection cs, CUITreeNode node)
в Autodesk.AutoCAD.Customization.MainForm.handleTreeNodeItemSelected(Boolean recreateToolbarPreview)
в Autodesk.AutoCAD.Customization.MainForm.tabControl_SelectedIndexChanged(Object sender, EventArgs e)/
в System.Windows.Forms.TabControl.OnSelectedIndexChanged(EventArgs e)
в System.Windows.Forms.TabControl.WmSelChange()
в System.Windows.Forms.TabControl.set_SelectedIndex(Int32 value)
в Autodesk.AutoCAD.Customization.MainForm.OnLoad(EventArgs e)
в System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
в System.Windows.Forms.Control.CreateControl()
в System.Windows.Forms.Control.WmShowWindow(Message& m)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.Form.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)Теперь подробнее.
Приложение существует уже долгие годы, и мне не в первый раз приходится переводить его на очередную версию AutoCAd’а.
Приложение состоит из нескольких частей.
ARX-часть написана на Unmanaged C++ & ObjectARX, через COM-интерфейс она связана с .Net-частью, реализующей пользовательский интерфейс на WinForms. Исторически, .Net-часть реализована на MS Framework 3.5.
Судя по исключению, ошибка происходит при чтении ресурсов при загрузке формы редактора. Возможно проблема с тем, что не совпадают культуры AutoCAD и Windows. У меня установлен AutoCAD 2015 SP1, English. Windows 7 Корпоративная, Русская.
Я попытался найти информацию об ошибке в интернете.
Вот здесь, автор neyton_ (примерно в середине страницы) описывает очень похожую ошибку - Bug after CUI command -
http://forums.autodesk.com/t5/autocad-civil-3d-general/c3d-2015-list-of-current-bugs-issues/td-p/5012764/page/7 , но информации об исправлении нет.
В конфигурационном файле acad.exe.config пробовал в различных комбинациях такие атрибуты как <supportedRuntime>, <generatePublisherEvidence>, <loadFromRemoteSources>, <legacyUnhandledExceptionPolicy>, не помогает.
Пробовал отключать функциональность приложения, реагирующую на события AutoCAD, да и просто большие куски кода, которые предположительно могли повлиять – не помогло.
Рассматривал вариант увеличения версии Framework нашей .Net-части с версии 3.5 до 4.0, но это довольно большой объем работы, по-быстрому не получилось.