c#autocad dllimport(按autocad版本)

c#autocad dllimport(按autocad版本),c#,dllimport,autocad,C#,Dllimport,Autocad,我一直在使用Philippe Leefsma的“选择运行时检测光标下的实体”中的程序,该程序位于此处。它在ACAD2014中工作,但现在我们使用的是ACAD2016。由于acdb19.dll的DLLImport和autocad2016需要acdb20.dll,因此无法工作。有没有一种方法可以让程序加载一个新的dll版本?我尝试使用netload和assembly.loadfrom,但都没有成功 DLL导入是在编译时设置的,因此最好是为每个AutoCAD版本编译两个版本 编译项目后,可以通过创建a

我一直在使用Philippe Leefsma的“选择运行时检测光标下的实体”中的程序,该程序位于此处。它在ACAD2014中工作,但现在我们使用的是ACAD2016。由于acdb19.dll的DLLImport和autocad2016需要acdb20.dll,因此无法工作。有没有一种方法可以让程序加载一个新的dll版本?我尝试使用netload和assembly.loadfrom,但都没有成功


DLL导入是在编译时设置的,因此最好是为每个AutoCAD版本编译两个版本

编译项目后,可以通过创建application.bundle文件夹来设置自动加载器。此文件夹可以放置在c:\programdata\Autodesk\applicationPlugins中。在application.bundle文件夹中,创建名为application的子文件夹,并将编译后的.DLL文件放在其中。

加载程序由一个名为PackageContents.XML的XML文件控制。下面是xml文件的一些示例代码:-

    <?xml version="1.0" encoding="utf-8"?>
<ApplicationPackage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
     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文件名不包含空格。

谢谢您提供的信息。我们使用application.bundle作为自动更新内部dll文件的方法。我没有想到在那里进行版本检查。