Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  DLL wird nicht geladen nach AutoCAD-Neustart

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  DLL wird nicht geladen nach AutoCAD-Neustart (1172 mal gelesen)
NL-AC
Mitglied
Ingenieur


Sehen Sie sich das Profil von NL-AC an!   Senden Sie eine Private Message an NL-AC  Schreiben Sie einen Gästebucheintrag für NL-AC

Beiträge: 86
Registriert: 26.08.2005

erstellt am: 26. Mai. 2015 12:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,
sich stehe vor folgendem Problem mit AutoCAD 2015:
ein .NET-Addin wird per Autoloader (.bundle) geladen und funktioniert erst mal wunderbar.
Beendet man AutoCAD und startet es gleich wieder, wird das Addin nicht geladen. Habe herausgefunden, dass nach dem Beenden von AutoCAD immer noch der Prozess ACAD.EXE einige Zeit im Taskmanager aktiv ist. Wie lange, hängt offenbar von der Rechnerperformance ab. Solange der Prozess noch aktiv ist, kann zwar ein neues AutoCAD gestartet werden, das Addin wird aber nicht geladen.
Das Addin kann dann nur per Netload manuell nachgeladen werden.
Das passiert nicht nur mit meinen selbstgeschriebenen Addins, sondern auch mit dem mitinstallieren Beispiel von Autodesk (ImportSkp.bundle).

Kennt jemand das Verhalten oder gar eine Lösung?

Gruß
Norbert

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Moderator
CAD on demand GmbH




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 26. Mai. 2015 12:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für NL-AC 10 Unities + Antwort hilfreich

... bau in deine DLL eine Funktion ein, die die Registry-Einträge für den Autoload schreibt. Dann wird die DLL (aus meiner Erfahrung) immer geladen.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

NL-AC
Mitglied
Ingenieur


Sehen Sie sich das Profil von NL-AC an!   Senden Sie eine Private Message an NL-AC  Schreiben Sie einen Gästebucheintrag für NL-AC

Beiträge: 86
Registriert: 26.08.2005

erstellt am: 26. Mai. 2015 13:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Genau den Registry-Krams wollte ich ja vermeiden. Dann geht's ja wieder los, welche AutoCAD-Version, welche Sprache wird verwendet etc.
Und warum in die DLL? Dann kann ich's doch gleich in ein Installationsscript packen. Oder versteh ich da was falsch?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Moderator
CAD on demand GmbH




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 26. Mai. 2015 13:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für NL-AC 10 Unities + Antwort hilfreich

... einer der beiden folgenden Aufrufe (abhängig von der AutoCAD-Version) ermittelt dir den Exakten Pfad des gestarteten AutoCADs in der Registry.
Code:

Autodesk.AutoCAD.DatabaseServices.HostApplicationServices.Current.GetType().GetProperty("RegistryProductRootKey").GetValue(AcDb.HostApplicationServices.Current, null).ToString();
Autodesk.AutoCAD.DatabaseServices.HostApplicationServices.Current.GetType().GetProperty("MachineRegistryProductRootKey").GetValue(AcDb.HostApplicationServices.Current, null).ToString();

Du musst also nichts ermitteln, da du damit immer im korrekten Registry-Pfad 'landest'.

Installationsscript ist dagegen richtig aufwändig, da dort eben genau die AutoCAD-Version/Sprache/Vertikalprodukt bekannt sein müssen.
(Für Inno-Setup haben wir uns die Arbeit gemacht und ein Script erstellt, dass alle verschiedenen Sprachversionen/Applikationsprodukte durchtestet. und wenn vorhanden eben in jedem Pfad die Einträge schreibt.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

NL-AC
Mitglied
Ingenieur


Sehen Sie sich das Profil von NL-AC an!   Senden Sie eine Private Message an NL-AC  Schreiben Sie einen Gästebucheintrag für NL-AC

Beiträge: 86
Registriert: 26.08.2005

erstellt am: 26. Mai. 2015 13:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

OK, das heißt, ich bring das Teil als Bundle ins AutoCAD, dort werden beim ersten Aufruf die Reg-Einträge für den "altmodischen" Autoload geschrieben, und ab dann hab ich eine redundante Lade-Prozedur. Nicht schön, aber wenn es funktioniert und sich nicht gegenseitig beißt, bau ich das so ein.

Warum das Verhalten so ist, weißt Du aber nicht?

Gruß
Norbert

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Moderator
CAD on demand GmbH




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 26. Mai. 2015 15:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für NL-AC 10 Unities + Antwort hilfreich

... mit der Bundle-Geschichte tue ich mich schwer. Da man dafür immer eine CUI erstellen muss, die XML-Datei entsprechend erstellen ...

Deshalb erstelle ich keine Bundle's. In meinen Tools habe ich immer die Autoload-Registrierung drinn, die Eintragung des Installationsverzeichnis in den TrustedPaths und auch die Implementierung eines Buttons in den Ribbons bzw. wenn nicht vorhanden, auch die Erstellung einer Ribbon-Registerkarte. Somit integrieren sich die Tools völlig unabhängig von der Autodesk-Bundle.Technologie. Das Setup erledigt die Registrierung für den Autoload, so dass die Tools auch nach einem AutoCAD-Neustart direkt zur Verfügung stehen.
Da wir die Tools gleichermaßen für BricsCAD und auch ZwCAD erzeugen ist unser Verfahren in allen CAD-Systemen gleich.

Fazit: Warum das so ist, kann ich dir nicht sagen. Nur aus der Erfahrung meiner Experimente mit dem Bundle-Zeugs weiß ich, dass die Registry-Variante sicherer funktioniert.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz