Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Solid Edge
  Visual Basic.Net AddIn in einem MSI Packet verpacken

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 SolidEdge
  
Workshop Digital Product Passport: Verstehen. Umsetzen. Zukunft gestalten., ein Seminar am 01.10.2026
Autor Thema:  Visual Basic.Net AddIn in einem MSI Packet verpacken (395 mal gelesen)
progi
Mitglied
Programmierer


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

Beiträge: 74
Registriert: 18.08.2004

VB.net SE 16

erstellt am: 14. Jan. 2005 14:35    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,
wer hat schon mal ein MSI Packet mit dem Visual-Studio erzeugt?
Ich muß bestimmte Keys in die Registry eingetragen, dafür gibt es auch einen Editor, jedoch schreibt das MSI Packet in HKEY_USERS rein und nicht wie im Editor dargestellt in die HKEY_CLASSES_ROOT ....
Hat einer eine Ahnung warum der das nicht richtig macht?

Gruß Andreas

------------------
Besten Dank
Andreas

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

Marco Kreutz
Mitglied



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

Beiträge: 640
Registriert: 11.02.2003

SolidEdge 2021, SolidWorks 2021, Inventor 2020, PRO/E Creo1 und Creo2
VB 6.0 / VB.NET / C#.NET
Windows 10 64bit

erstellt am: 14. Jan. 2005 16:02    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 progi 10 Unities + Antwort hilfreich

Hallo,

implementiere einfach 2 neue methoden

[System.Runtime.InteropServices.ComRegisterFunctionAttribute()]
static void RegisterServer(Type t)
{
try
{

RegistryKey baseKey = Registry.ClassesRoot.CreateSubKey("CLSID\\{" + t.GUID.ToString() + "}");
if (baseKey != null)
{
baseKey.SetValue("AutoConnect", 1);
baseKey.SetValue("409", "HITDialog");
baseKey.CreateSubKey("Implemented Categories\\" + HITDialog.SolidEdge.CATIDs.CATID_SolidEdgeAddIn);
baseKey.CreateSubKey("Environment Categories\\" + HITDialog.SolidEdge.CATIDs.CATID_SEApplication);
baseKey.CreateSubKey("Environment Categories\\" + HITDialog.SolidEdge.CATIDs.CATID_SEAssembly);
baseKey.CreateSubKey("Environment Categories\\" + HITDialog.SolidEdge.CATIDs.CATID_SEDraft);
baseKey.CreateSubKey("Environment Categories\\" + HITDialog.SolidEdge.CATIDs.CATID_SEPart);
baseKey.CreateSubKey("Environment Categories\\" + HITDialog.SolidEdge.CATIDs.CATID_SESheetMetal);
baseKey.CreateSubKey("Environment Categories\\" + HITDialog.SolidEdge.CATIDs.CATID_SEWeldment);
baseKey.Close();
}
}
catch (System.Exception e)
{
MessageBox.Show(e.ToString(), "RegisterServer", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}

und

static void UnregisterServer(Type t)
{
try
{
Registry.ClassesRoot.DeleteSubKeyTree("CLSID\\{" + t.GUID.ToString() + "}");
}
catch (System.Exception e)
{
MessageBox.Show(e.ToString(), "UnregisterServer", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}

und noch einen strong name. Mit regasm wird die Assembly registriert.

------------------
Marco Kreutz
info@hitteam.de   
http://www.hitteam.de

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

progi
Mitglied
Programmierer


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

Beiträge: 74
Registriert: 18.08.2004

VB.net SE 16

erstellt am: 17. Jan. 2005 08: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

Besten Dank für die Anwort,
die beiden Funktionen habe ich auch in meinem AddIn.
Beim Complilieren wird die Funktion auch gestartet, jedoch nicht beim Installieren des MSI Files.
Da muß man doch bestimmt noch ein paar Einstellungen vornehmen,
es scheint so als ob das regasm beim Installieren nicht gestartet wird?

Gruß Andreas

------------------
Besten Dank
Andreas

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

Marco Kreutz
Mitglied



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

Beiträge: 640
Registriert: 11.02.2003

SolidEdge 2021, SolidWorks 2021, Inventor 2020, PRO/E Creo1 und Creo2
VB 6.0 / VB.NET / C#.NET
Windows 10 64bit

erstellt am: 17. Jan. 2005 08:23    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 progi 10 Unities + Antwort hilfreich

Hallo,

2 weitere Dinge sind noch zu beachten:

Regasm muss mit Pfadangabe aufgerufen werden - da der Pfad nicht in der Umgebungsvariable steht.
Den Pfad findest du in der Registry: HKLM\SOFTWARE\Microsoft\.NETFramework.

Beachte noch, dass du noch einen strongname benötigst. Demenstprechend muss regasm mit der Oprion codebase aufgerufen werden - sofern du nichts im GAC installierst.

------------------
Marco Kreutz
info@hitteam.de   
http://www.hitteam.de

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

progi
Mitglied
Programmierer


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

Beiträge: 74
Registriert: 18.08.2004

VB.net SE 16

erstellt am: 17. Jan. 2005 10: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

Und wie mache ich das im Visual Studio?
Mit dem Aufruf im Kommando-Interpreter
regasm [Pfad der DLL] /tlb /codebase
wird die Registrierung durchgeführt, blos wie stoße ich das im VS an?
Soll ich eine Batch-Datei einfügen, oder geht das auch anders?

------------------
Besten Dank
Andreas

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

Marco Kreutz
Mitglied



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

Beiträge: 640
Registriert: 11.02.2003

SolidEdge 2021, SolidWorks 2021, Inventor 2020, PRO/E Creo1 und Creo2
VB 6.0 / VB.NET / C#.NET
Windows 10 64bit

erstellt am: 17. Jan. 2005 10:42    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 progi 10 Unities + Antwort hilfreich

Hallo,

leider weis ich nicht wie man mit MSI arbeitet. Ich erzeuge meine Setup mit http://www.jrsoftware.org/isinfo.php - sehr zu empfehlen und kostet nichts.
Wenn du die Möglichkeit hast ein script zu starten, dann kannst du das statement in diese Datei eintragen.

Abhängig vom Service Pack für .NET findest du den Pfad in der Registry.

Service Pack 1.1 lautet der pfad in der Registry:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322

demnach auf der Platte:
%SystemRoot%\Microsoft.net\Framework\v1.1.4322\regasm.exe /CODEBASE /NOLOGO SILENT MyProgram.dll

------------------
Marco Kreutz
info@hitteam.de   
http://www.hitteam.de

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

Marco Kreutz
Mitglied



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

Beiträge: 640
Registriert: 11.02.2003

SolidEdge 2021, SolidWorks 2021, Inventor 2020, PRO/E Creo1 und Creo2
VB 6.0 / VB.NET / C#.NET
Windows 10 64bit

erstellt am: 18. Jan. 2005 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 progi 10 Unities + Antwort hilfreich

Hallo,
ich denke, dass könnte die Lösung sein.
Habe es selbst noch nicht getestet...
http://www.dotnet247.com/247reference/msgs/18/90440.aspx.

Vielleicht kann jemand eine Aussage dazu machen ob es funktioniert.

------------------
Marco Kreutz
info@hitteam.de   
http://www.hitteam.de

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

progi
Mitglied
Programmierer


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

Beiträge: 74
Registriert: 18.08.2004

VB.net SE 16

erstellt am: 19. Jan. 2005 08:54    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 Marco,
besten Dank für den Link.
Das hat geklappt. Also ich habe die Klasse einfach in das AddIn Projekt eingebunden und im MSI Projekt im "Editor für benutzerdefinierte Aktionen" im Installationsordner die Primäreausgabe des AddIns als Aktion eingebunden. Das gleiche für Rollback und Uninstall. Dann wird die Registrierung der AddIn Dll angestoßen.
Dann gehts!
Also besten Dank.
Andreas

------------------
Besten Dank
Andreas

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)2024 CAD.de | Impressum | Datenschutz