c# autocad dllimport по версии autocad

я использую программу из» обнаружение объектов под курсором во время выбора » Филиппа Leefsma, расположенную здесь 1 . он работал в ACAD2014 однако теперь мы используем ACAD2016. он не будет работать из-за DLLImport acdb19.dll и autocad2016 нуждается в acdb20.файл DLL. Есть ли способ сделать так, чтобы программа загрузила версию eighter dll? я попробовал использовать netload и assembly.loadfrom и ни работал.

Обратный вызов монитора точек

1 ответ

  1. Импорт DLL устанавливается во время компиляции, поэтому лучше всего компилировать две версии для каждого выпуска AutoCAD.

    После компиляции проекта можно настроить автозапуск, создав приложение.папка bundle. эту папку можно поместить в c:\programdata\Autodesk\applicationPlugins. В приложении.bundle folder, создайте вложенную папку с именем Application и поместите скомпилированную .DLL файл там.
    приложение.содержимое папки bundle

    Загрузчик управляется XML-файлом с именем PackageContents.XML. Вот пример кода для xml-файла:-

        <?xml version="1.0" encoding="utf-8"?>
    <ApplicationPackage  
         Name="My AutoCAD App"
         Description="Does something in AutoCAD"
         Icon="./Application/MyIcon.ico"
         Author="Paul Nelson">
     <CompanyDetails Name="Paul Nelson"
         Url="http://www.stackoverflow.com"
         Email="myemail@email.com">
     </CompanyDetails>
     <Components>
      <!-- define the min and max versions of AutoCA in the next line -->
      <RuntimeRequirements OS="Win64" Platform="AutoCAD" SeriesMin="R19.0" SeriesMax="R22.0" />
      <ComponentEntry
       ModuleName=".\Application\MyApp.dll"
       LoadOnAutoCADStartup="true"
       LoadOnCommandInvocation="false"
       AppDescription="This is assembly MyApp."
       AppName="My AutoCAD App"
       AppType=".NET">
    
       <Commands GroupName="My Apps">
        <Command Local="MYAPP" Global="MYAPP" />
       </Commands>
    
      </ComponentEntry>
     </Components>
    </ApplicationPackage>
    

    Последний совет — убедитесь в этом .имя файла dll не содержит пробелов.