.NET

.NET

Reply
Mentor
tyronebk
Posts: 173
Registered: ‎08-17-2007
Message 1 of 23 (867 Views)
Accepted Solution

AppAutoload in 2013 LoadOnCommandInvocation seems broken

867 Views, 22 Replies
09-09-2012 01:17 AM

I have searched but have been unable to find anything related to this. This is not strictly a .net issue.

Is LoadOnCommandInvocation="True" broken in 2013? It used to work fine in 2012 but in 2013 all .DLL and lisp files are simply being loaded at launch?

Even the simple DOTNETTEST2 bundle (made available by the APN Dev guys last year) show the same behaviour.

Is there something I'm missing?

Here's the PackageContents.xml from the DOTNETTEST2:

Spoiler

<?xml version="1.0" encoding="utf-8" ?>

<ApplicationPackage SchemaVersion="1.0" >

<Components>

<ComponentEntry AppName="DOTNETTEST2" ModuleName="./Contents/2013/AutoloaderDotNetSample2.dll" LoadOnCommandInvocation="True" >

<Commands GroupName="DevDays2010">

<Command Global="DOTNETTEST2" Local="DOTNETTEST2" />

</Commands>

</ComponentEntry>

</Components>

</ApplicationPackage>

I searched through the now redacted SP 1 release notes and saw no mention of this problem.

ADN Support Specialist
fenton.webb
Posts: 352
Registered: ‎07-24-2007
Message 2 of 23 (831 Views)

Re: AppAutoload in 2013 LoadOnCommandInvocation seems broken

09-12-2012 08:42 AM in reply to: tyronebk

Can you send your test bundle please?

 

Also, a .NET DLL that ran in 2012 won't run in 2013... The DLL needs to be built against the 2013 ObjectARX SDK because 2013 is a binary break release. You can include both 2012 and 2013 DLL's in the same bundle, but you have to separate the Components by using the RuntimeRequirements tag... e.g.

 

<?xml version="1.0" encoding="utf-8"?>
<ApplicationPackage SchemaVersion="1.0" Name="DOTNETTEST2" Description="DOTNETTEST2" AutodeskProduct="AutoCAD" AppVersion="1.0.0" ProductType="Application" >

     <!-- This is an overview of the entire package, it can also contain Revit, Alias, Vault, Inventor plugins too -->
    <RuntimeRequirements OS="Win32|Win64" Platform="AutoCAD|AutoCAD*" SeriesMin="R18.2|R19.0" SeriesMax="R18.2|R19.0" />
  <Components>

    <!-- Here is the 2012 version of your AutoCAD App -->
    <RuntimeRequirements OS="Win32|Win64" Platform="AutoCAD|AutoCAD*" SeriesMin="R18.2" SeriesMax="R18.2" />
    <ComponentEntry AppName="DOTNETTEST2" ModuleName="./Contents/2012/AutoloaderDotNetSample2.dll" LoadOnCommandInvocation="True">
      <Commands GroupName="DevDays2010">
        <Command Local="DOTNETTEST2" Global="DOTNETTEST2" Description="A test command" />
      </Commands>
    </ComponentEntry>
  </Components>
  <Components>
    <!-- Here is the 2013 version of your AutoCAD App -->

    <RuntimeRequirements OS="Win32|Win64" Platform="AutoCAD|AutoCAD*" SeriesMin="R19.0" SeriesMax="R19.0" />
    <ComponentEntry AppName="DOTNETTEST2" ModuleName="./Contents/2013/AutoloaderDotNetSample2.dll" LoadOnCommandInvocation="True">
      <Commands GroupName="DevDays2010">
        <Command Local="DOTNETTEST2" Global="DOTNETTEST2" Description="A test command" />
      </Commands>
    </ComponentEntry>
  </Components>





Fenton Webb

Developer Technical Services

Autodesk Developer Network


Mentor
tyronebk
Posts: 173
Registered: ‎08-17-2007
Message 3 of 23 (810 Views)

Re: AppAutoload in 2013 LoadOnCommandInvocation seems broken

09-13-2012 09:37 PM in reply to: fenton.webb

Hi Fenton -- thanks for your reply.

 

I am aware of all the versioning attributes and that coding/recompiling is necessary for 2013. I excluded all of that for brevity and simplicity. I also thought that maybe the version attributes were causing the issue so I went with the simplest plug-ins I could find, the DotNetTest bundles.

 

I've attached the recompiled 2013 versions of the DotNetTest bundles. These bundles both are being loaded at launch. The 2012 versions (not included) launch when expected.

 

I also included a sample "universal" bundle (DotNetTestsAllInOne.bundle) that supports both 2012 and 2013. Regardless, the result is the same: 2012 loads AutoloaderDotNetSample1.dll at launch and AutoloaderDotNetSample2.dll on command invocation, 2013 loads both at launch.

 

I reset all of my settings but that has made no difference. I have vanilla AutoCAD and Civil 3D installed and both show the same behaviour.

 

The bundles are being recognized properly as the Applications registry entries show (in both 2012 and 2013):

  • DOTNETTEST1: LOADCTRLS = 2
  • DOTNETTEST2: LOADCTRLS = 4

All custom plug-ins and plug-ins acquired from the Exchange store show the same behaviour. As I mentioned initially, this is not specific to DLLs as LSP/VLX/FAS files are also being loaded at launch.

 

Thanks for your time and any insights.

 

Edit: I've just installed and tested SP1.1 but the result is the same.

ADN Support Specialist
fenton.webb
Posts: 352
Registered: ‎07-24-2007
Message 4 of 23 (796 Views)

Re: AppAutoload in 2013 LoadOnCommandInvocation seems broken

09-14-2012 02:38 PM in reply to: tyronebk

I'm just looking into it for you...





Fenton Webb

Developer Technical Services

Autodesk Developer Network


ADN Support Specialist
fenton.webb
Posts: 352
Registered: ‎07-24-2007
Message 5 of 23 (733 Views)

Re: AppAutoload in 2013 LoadOnCommandInvocation seems broken

09-24-2012 04:13 PM in reply to: fenton.webb

Just to let you know that I have reproduced the same issue on my machine and I've reported it to engineering. I'll push to get this fixed for you.





Fenton Webb

Developer Technical Services

Autodesk Developer Network


Mentor
tyronebk
Posts: 173
Registered: ‎08-17-2007
Message 6 of 23 (721 Views)

Re: AppAutoload in 2013 LoadOnCommandInvocation seems broken

09-25-2012 07:44 AM in reply to: fenton.webb
Thanks for confirming it Fenton.
Active Member
steve.grace
Posts: 8
Registered: ‎02-26-2004
Message 7 of 23 (555 Views)

Re: AppAutoload in 2013 LoadOnCommandInvocation seems broken

04-18-2013 08:26 AM in reply to: tyronebk

Has there been any solution to this?

It appears to be broken in AutoCAD 2014

I can only get my apps to load with LoadOnAutoCADStartup="True"

Funny it works with AutoCAD 2013 now. Maybe SP 1.1 fixed it there?

 

I'm trying to get an app ready for posting to the exchange store and it would be nice to be able to follow the recommended "LoadonCommandInvocation" method.

 

-steve

 

Valued Mentor
DiningPhilosopher
Posts: 370
Registered: ‎05-06-2012
Message 8 of 23 (552 Views)

Re: AppAutoload in 2013 LoadOnCommandInvocation seems broken

04-18-2013 08:49 AM in reply to: steve.grace

You might expect it to be fixed in a service pack, but these days, waiting for service packs is considered a thing of the past, and no longer acceptable, not to mention a bit of an oxymoron in the case of a vendor that seems to be into cloud-washing to the extent these folk are.

 

The thing that puzzles me, is how these types of glaringly-obvious bugs find their way into shipping products, and worse, survive to the next release.  

ADN Support Specialist
fenton.webb
Posts: 352
Registered: ‎07-24-2007
Message 9 of 23 (542 Views)

Re: AppAutoload in 2013 LoadOnCommandInvocation seems broken

04-18-2013 09:31 AM in reply to: steve.grace

Sorry for the trouble... Just be sure to setup the OnCommandInvocation settings for when the issue is fixed.





Fenton Webb

Developer Technical Services

Autodesk Developer Network


Active Member
steve.grace
Posts: 8
Registered: ‎02-26-2004
Message 10 of 23 (533 Views)

Re: AppAutoload in 2013 LoadOnCommandInvocation seems broken

04-18-2013 11:26 AM in reply to: fenton.webb

So, knowing that it is an issue, do you have any expectations for when a fix will be released?

I'd rather not release my app while it throws an "Unknown Command" error.

 

 

Announcements
Are you familiar with the Autodesk Expert Elites? The Expert Elite program is made up of customers that help other customers by sharing knowledge and exemplifying an engaging style of collaboration. To learn more, please visit our Expert Elite website.
Need installation help?

Start with some of our most frequented solutions or visit the Installation and Licensing Forum to get help installing your software.