Konvertieren des C++-Zusatzmoduls in registrierungsfrei

  1. Deaktivieren Sie im Dialogfeld Anwendungseigenschaften auf der Registerkarte Erstellen unter Ausgabe das Kontrollkästchen Für COM-Interop registrieren.
  2. Erstellen Sie eine Datei im selben Ordner wie Ihre Projektdatei, und geben Sie ihr den Namen "CPPOEMAddIn.X.manifest". Ersetzen Sie CPPOEMAddIn durch den Namen Ihres Zusatzmoduls. Fügen Sie der Manifestdatei die folgenden Zeilen hinzu. Bearbeiten Sie den Text in Kursivschrift entsprechend Ihrem Zusatzmodul.
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
      <assemblyIdentity name="CPPOEMAddIn" version="1.0.0.0" />
      <clrClass clsid="{89003b1d-548e-4508-a054-42ce772163b0}" 
                progid="CppOEMAddIn.CppOEMAddInAddInServer" 
                threadingModel="Both" 
                name="CppOEMAddIn.CppOEMAddInAddInServer" 
                runtimeVersion="" />
      <file name="CppOEMAddIn.dll" hashalg="SHA1" />
    
    

    Der Name des Elements assemblyIdentity ist der Name des Projekts, wie in der folgenden Abbildung hervorgehoben.

    Die CLSID ist die Klassen-ID für Ihr Zusatzmodul, und sie befindet sich in der mit dem Zusatzmodul verknüpften IDL-Datei, wie in der folgenden Abbildung dargestellt. Die Klammern sind in der Manifestdatei erforderlich.

    Das Namensattribut des clrClass-Elements besteht aus zwei Teilen, die durch Punkte voneinander getrennt sind. Der erste Teil ist der Name Ihres Projekts, in diesem Beispiel CppOEMAddIn. Der zweite Teil ist der Name der Klasse, die die ApplicationAddInServer-Schnittstelle implementiert, in diesem Beispiel CppOEMAddInAddInServer:

  3. Konfigurieren Sie die Projekteinstellungen, um die Manifestdatei korrekt in die DLL-Datei einzubetten. Die ersten zwei Einstellungen sind Teil der Linkereinstellungen. Die Einstellungen und Werte, um sie zu ändern, sind in der folgenden Abbildung hervorgehoben. In einigen Fällen sind die Werte für diese Eigenschaften bereits korrekt.
    Als Nächstes folgen die Einstellungen für Manifesttool. Legen Sie Manifest einbetten auf Ja fest, wie dargestellt:
    Entfernen Sie im Abschnitt Buildereignisse der Einstellungen den Postbuild-Schritt, bei dem das Zusatzmodul in die Registrierung aufgenommen wird. Löschen Sie jeglichen Text aus dem Feld Befehlszeile, wie in der folgenden Abbildung dargestellt.
  4. Entfernen Sie jeglichen Code aus dem Projekt, der die Aufnahme des Zusatzmoduls in der Registrierung unterstützt. Bei dieser Aktion werden die mit dem Projekt verknüpfte RGS-Datei entfernt und die Funktionen DllRegisterServer und DllUnregisterServer gelöscht.
  5. Kompilieren Sie das Projekt. Wenn bei der Kompilierung Fehler auftreten, vergewissern Sie sich, dass die von Ihnen eingegebene Befehls zeichenfolge der Zeichenfolge in Schritt 2 entspricht.

    Um sicherzustellen, dass das Manifest korrekt eingebettet ist, ziehen Sie die Zusatzmodul-DLL in Visual Studio. Der Ordner "RT_MANIFEST" wird angezeigt, wie in der folgenden Abbildung dargestellt. Doppelklicken Sie auf das Symbol 2, um ein Fenster mit den tatsächlichen Manifestdaten anzuzeigen.

  6. Alle registrierungsfreien Zusatzmodule erfordern eine Zusatzmoduldatei (.addin). Bei einem registrierungsbasierten Zusatzmodul muss Inventor Informationen zu dem Zusatzmodul aus der Registrierung abrufen. Die Zusatzmoduldatei (.addin) ersetzt die Registrierung und stellt dieselben Informationen bereit. Der Name der Zusatzmoduldatei hat das Format Autodesk.Zusatzmodulname.Inventor.addin. Die folgende Abbildung zeigt das Beispiel einer Zusatzmoduldatei für ein primäres Zusatzmodul, mit den zu ändernden Teilen in Kursivschrift.
    <?xml version="1.0" encoding="utf-16"?>
    <Addin Type="Standard">
    	<ClassId>{2bf59d73-5170-4524-b0e1-391760aaffa5}</ClassId>
    	<ClientId>{2bf59d73-5170-4524-b0e1-391760aaffa5}</ClientId>
    	<DisplayName>MyOEMApp</DisplayName>
    	<Description>Inventor OEM Sample App</Description>
    	<Assembly>MyOEMApp\MyOEMApp.dll</Assembly>
    	<Hidden>0</Hidden>
    </Addin>
    

      Beschreibungen der Elemente in der Beispiel-Zusatzmoduldatei:

    • ClassId und ClientId: Beide haben denselben Wert, nämlich die GUID ganz oben in der Klasse StandardAddInServer.
    • DisplayName: Kann ein beliebiger Wert sein; ist der Name des Zusatzmoduls wie im Zusatzmodul-Manager angezeigt.
    • Description: Kann ein beliebiger Wert sein; ist die Beschreibung des Zusatzmoduls wie im Zusatzmodul-Manager angezeigt.
    • Assembly: Definiert den Namen und Pfad der Zusatzmodul-DLL, relativ zum Ordner OEM\Bin. Der Unterordner muss denselben Namen wie die Zusatzmodul-DLL haben.
    • Hidden: Definiert, ob das Zusatzmodul im Zusatzmodul-Manager sichtbar ist. Der Wert 1 gibt an, dass das Zusatzmodul ausgeblendet ist. Wenn Sie jedoch im Zusatzmodul-Manager mit der rechten Maustaste klicken und "Ausgeblendete Varianten anzeigen" wählen, werden alle Zusatzmodule angezeigt.
    • Es kann weitere Elemente geben, die für andere Zusatzmodule definiert sind und die für ein primäres OEM-Zusatzmodul entweder nicht gültig sind oder ignoriert werden.

  7. Erstellen Sie einen Ordner im Ordner OEM\Bin, der denselben Namen wie Ihre Zusatzmodul-DLL aufweist (ohne die Erweiterung .dll. Beispielsweise kann der vollständige Pfad zu dem neuen Ordner "C:\Programme\Autodesk\Inventor OEM 2014\Bin\MyOEMApp" lauten).

    Kopieren Sie die Zusatzmodul-DLL in den neuen Ordner.

  8. Kopieren Sie die .addin-Datei in einen der folgenden Ordner, abhängig vom Geltungsbereich des Zusatzmoduls und vom Betriebssystem.
    • Versionsunabhängig
      Wenn eine .addin-Datei in den folgenden Speicherorten vorhanden ist, wird das Zusatzmodul in mehreren Versionen von Inventor geladen, basierend auf den Werten der Einstellungen "SupportedSoftwareVersionXXX" in der Manifestdatei.
      • Windows XP: C:\Dokumente und Einstellungen\All Users\Application Data\Autodesk\Inventor Addins\
      • Windows 7: C:\ProgramData\Autodesk\Inventor Addins\
    • Versionsabhängig
      Wenn die Manifestdatei in den folgenden Speicherorten vorhanden ist, wird das Zusatzmodul in einer bestimmten Version von Inventor geladen. Alle Werte der Einstellungen "SupportedSoftwareVersionXXX" in der Manifestdatei werden ignoriert.
      • Windows XP: C:\Dokumente und Einstellungen\All Users\Application Data\Autodesk\Inventor 2011\Addins\
      • Windows 7: C:\ProgramData\Autodesk\Inventor 2011\Addins\
    • Benutzerüberschreibung
      Wenn Sie Benutzerüberschreibungen speichern, wird die Manifestdatei automatisch in den folgenden Speicherorten erstellt. Die Einstellungen in diesen Manifestdateien überschreiben die Einstellungswerte in den Manifestdateien im Ordner 'All Users'. Die Namen dieser Überschreibungs-Manifestdateien entsprechen den Namen der "Master"-Dateien.
      • Windows XP: C:\Dokumente und Einstellungen\<Benutzer>\Anwendungsdaten\Autodesk\Inventor 2011\Addins\
      • Windows 7: C:\Benutzer\<Benutzer>\AppData\Roaming\Autodesk\Inventor 2011\Addins\