Frage

Ich habe eine Vanille-.NET-Klassenbibliothek bekam, die einige Arten enthält, die [ComVisible] und die Anordnung wird sich mit „Register für COM-Interop“. Ich versuche, ein WIX Installationsprogramm für die Anwendung zu erstellen, die nur müssen nicht kopieren Sie die .NET-Assembly zum InstallationDir auf der Zielmaschine, sondern tun auch die Arbeit der Registrierung, dass das Objekt so, dass einige ältere VB6 Anwendungen Gebrauch machen können die .NET-Assembly.

Ich habe heat.exe benutze (die Wärme Datei Aufgabe genauer) ein Fragment zu ernten, die ich über einen componentGroupRef enthalten habe in meiner Haupt-Wix-Datei. Meine Frage ist, sollte die Datei, die heat.exe Ernte ist durch meine Klassenbibliothek die TLB-Datei ausgegeben werden oder die DLL selbst? Wenn ich heat.exe auf dem TLB nicht verwenden ich alle Registrierungs Elemente in dem Fragment erhalten, aber ich tun mit der dll. Wenn ich soll die DLL verwenden, welche Rolle spielt dabei das TLB-Spiel in diesem Prozess?

Im mit dem unter Wärme Aufgabe in msbuild

<HeatFile
  NoLogo="true"
  ToolPath="$(WixToolPath)"
  TreatWarningsAsErrors="false"
  AutogenerateGuids="true"
  GenerateGuidsNow="true"
  OutputFile="$(MSBuildProjectDirectory)\fragments\DemoTypeLib.wxs"
  File="$(SolutionDir)DemoClassLibrary1\bin\Debug\DemoClassLibrary1.dll"
  ComponentGroupName="DemoTypeLibComponent"
    PreprocessorVariable="var.DemoClassLibrary1.TargetDir"
  SuppressCom="false"
    DirectoryRefId="INSTALLLOCATION"
  SuppressRegistry="false"
  SuppressRootDirectory="true" />
War es hilfreich?

Lösung

versenden gerade das Fragment mit dem DLL und die COM für sie. Du hast nicht den TLB benötigt.

Andere Tipps

Sie sollten sowohl den TLB ernten und die DLL-Datei. Einige Tools können nur die DLL-Registrierung verwenden, aber andere, wie Skriptsprachen, müssen die Typbibliothek als auch. Wärme einfach beide, und beinhaltet beiden Ausgänge in Ihrem letzten Projekt. Zum Beispiel Python win32com und Perl-Win32 :: OLE-Bibliotheken sowohl Notwendigkeit der Typbibliothek Funktion registriert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top