Visual Basic-Zusatzmodul in registrierungsfrei konvertieren

  1. Im Dialogfeld Anwendungseigenschaften, Registerkarte Kompilieren, deaktivieren Sie das Kontrollkästchen Für COM interop registrieren, wie in der folgenden Abbildung gezeigt.
  2. Erstellen Sie eine Datei mit dem Namen "MyOEMApp.X.manifest" im gleichen Ordner wie die Projektdatei. Ersetzen Sie MyOEMApp durch den Namen Ihres Zusatzmoduls. Fügen Sie der Manifestdatei Folgendes hinzu. Bearbeiten Sie den kursiv angezeigten Text, sodass er Ihrem Zusatzmodul entspricht.
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
      <assemblyIdentity name="MyOEMApp" version="1.0.0.0" />
      <clrClass clsid="{2bf59d73-5170-4524-b0e1-391760aaffa5}" 
                progid="MyOEMApp.StandardAddInServer" 
                threadingModel="Both" 
                name="MyOEMApp.MyOEMApp.StandardAddInServer" 
                runtimeVersion="" />
      <file name="MyOEMApp.dll" hashalg="SHA1" />
    
    

    Das Attribut name des Elements clrClass besteht aus drei Teilen, die durch Punkte voneinander getrennt sind. Der erste Teil ist der Name des Stamm-Namensbereichs, wie in der folgenden Abbildung hervorgehoben.

    Das zweite Teil ist der Namensbereich, in dem die COM-Klasse definiert ist. In diesem Beispiel ist dies MyOEMApp, wie in der folgenden Abbildung hervorgehoben. Der letzte Teil ist der Name der Objektklasse, die die Schnittstelle ApplicationAddInServer implementiert. In diesem Beispiel ist es StandardAddInServer, wie in der folgenden Abbildung hervorgehoben.

  3. Fügen Sie einen Post-Build-Prozess hinzu, um das Manifest in die DLL-Datei zu integrieren. Der Post-Build-Prozess ruft mt.exe auf, ein Microsoft-Dienstprogramm, das das Manifest in die DLL-Datei des Zusatzmoduls einbettet. Klicken Sie im Dialogfeld Anwendungseigenschaften auf der Registerkarte Kompilieren auf Buildereignisse. Klicken Sie im Dialogfeld Buildereignisse auf Postbuild bearbeiten... Geben Sie im Dialogfeld Befehlszeile für Postbuildereignis die folgenden Zeilen ein, und ersetzen Sie dabei OEMTestAddin durch den Namen Ihres Zusatzmoduls.
    call "%VS90COMNTOOLS%vsvars32"
    mt.exe -manifest $(Projector)\OEMTestAddin.X.manifest -outputresource:"$(TargetPath)";#2
  4. Entfernen Sie den Code, mit dem das Zusatzmodul in der Registrierung registriert wird, indem Sie die Methoden Register und Unregister aus der Zusatzmodulklasse löschen. Die Eigenschaft AddInGuid findet sich in demselben Bereich wie die Registrierungsfunktionen. Wenn Sie diese Eigenschaft in anderen Bereichen des Zusatzmoduls verwenden möchten, löschen Sie sie nicht.
  5. Kompilieren Sie das Projekt. Beim Kompilieren wird das Manifest in die DLL-Datei eingebettet. Wenn bei der Kompilierung Fehler auftreten, vergewissern Sie sich, dass die von Ihnen eingegebene Befehlszeichenfolge der Zeichenfolge in Schritt 3 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 2014\Addins\
      • Windows 7: C:\ProgramData\Autodesk\Inventor 2014\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 2014\Addins\
      • Windows 7: C:\Benutzer\<Benutzer>\AppData\Roaming\Autodesk\Inventor 2014\Addins\