2017-01-16 5 views
0

필자는 Philippe Leefsma가 여기에있는 1에있는 "선택 실행 중 커서 아래 엔티티 검색 중"의 프로그램을 사용하고 있습니다. ACAD2014에서 작동했지만 현재는 ACAD2016을 사용하고 있습니다. acdb19.dll 및 autocad2016의 DLLImport 때문에 acdb20.dll이 필요합니다. 프로그램이 더 dll 버전을 더로드하도록 만드는 방법이 있습니까? netload 및 assembly.loadfrom 사용하여 시도하고 둘 다 작동하지 않습니다. 최선의 AutoCAD의 각 릴리스에 대한 두 가지 버전을 컴파일 그래서autocad dllimport by autocad 버전

Point Monitor callback

답변

0

DLL을 가져 오기는 컴파일시에 설정됩니다.

일단 프로젝트가 컴파일되면 application.bundle 폴더를 만들어 자동 로더를 설정할 수 있습니다. 이 폴더는 c : \ programdata \ Autodesk \ applicationPlugins에 배치 할 수 있습니다. application.bundle 폴더에서 Application이라는 하위 폴더를 만들고 거기에 컴파일 된 .DLL 파일을 저장합니다. application.bundle folder contents

로더는 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="[email protected]"> 
</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 파일 이름에 공백이 포함되지 않았는지 확인하십시오.

+0

정보 주셔서 감사합니다. 우리는 사내 dll 파일을 자동으로 업데이트하는 수단으로 application.bundle을 사용합니다. 그곳에서 버전 체크를하는 것은 나에게 일어나지 않았다. – North