c#autocad dllimport(按autocad版本)
我一直在使用Philippe Leefsma的“选择运行时检测光标下的实体”中的程序,该程序位于此处。它在ACAD2014中工作,但现在我们使用的是ACAD2016。由于acdb19.dll的DLLImport和autocad2016需要acdb20.dll,因此无法工作。有没有一种方法可以让程序加载一个新的dll版本?我尝试使用netload和assembly.loadfrom,但都没有成功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
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文件的方法。我没有想到在那里进行版本检查。