День добрый,
Сначала о грустном. Обнаружил опечатку (возможно, вы уже о ней знаете) на стр. 154 внизу напечатано:
- 2011 - 3.5,4.0,4.5,4.5.1 (VS2005 и выше);
а должно быть:
- 2011 - 3.5 (VS2005 и выше);
Я сначала не обратил внимания и промучился с .NET 4.0, пытаясь использовать его для AutoCAD 2011.
Теперь о главном. По некоторым причинам мне нужно писать плагины под AutoCAD 2011. Я попробовал воспроизвести под AutoCAD 2011 пример со смайликом, который удачно заработал под AutoCAD 2015. Не получается. Попытки понять почему? привели к следующим выводам.
1. На работоспособность под AutoCAD 2011 влияют 2 строки.
Первая строка на стр.182:
[assembly: Rt.ExtensionApplication(typeof(Bushman.CAD.Samples.Extention))]
и вторая строка на стр.184:
[Rt.CommandMethod(cmdGr, "hello", "hello_ID", Rt.CommandFlags.Modal)]
При этом, если эти строки не комментировать или закомментировать только первую из этих двух строк, то при попытке исполнить команду "netload" появляется сообщение:
Не удалось найти ресурсы, соответствующие указанной культуре или нейтральной
культуре. Проверьте правильность внедрения или связывания
"Bushman.CAD.Samples.Commands.resources" со сборкой "ACAD11_test" во время
компиляции, или убедитесь, что все необходимые сопутствующие сборки полностью
подписаны и могут быть загружены.
Не удалось загрузить сборку. Сведения об ошибке:
System.Resources.MissingManifestResourceException: Не удалось найти ресурсы,
соответствующие указанной культуре или нейтральной культуре. Проверьте
правильность внедрения или связывания "Bushman.CAD.Samples.Commands.resources"
со сборкой "ACAD11_test" во время компиляции, или убедитесь, что все
необходимые сопутствующие сборки полностью подписаны и могут быть загружены.
в System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo
culture, Boolean createIfNotExists, Boolean tryParents)
в System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo
culture, Boolean createIfNotExists, Boolean tryParents)
в System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo
culture, Boolean createIfNotExists, Boolean tryParents)
в System.Resources.ResourceManager.GetString(String name, CultureInfo
culture)
в Autodesk.AutoCAD.Runtime.CommandClass.AddCommand(ICommandLineCallable ca,
MethodInfo mi)
в
Autodesk.AutoCAD.ApplicationServices.AutoCADApplicationHolder.Initialize(Assembl
y assembly)
в
Autodesk.AutoCAD.ApplicationServices.ExtensionLoader.ProcessAssembly(Assembly
assembly)
Если же закомментировать обе строки или вторую из двух, то появляется более короткое сообщение:
Не удалось найти ресурсы, соответствующие указанной культуре или нейтральной
культуре. Проверьте правильность внедрения или связывания
"Bushman.CAD.Samples.Commands.resources" со сборкой "ACAD11_test" во время
компиляции, или убедитесь, что все необходимые сопутствующие сборки полностью
подписаны и могут быть загружены.
Это как-то лечится?
Заранее благодарен.