Question

J'ai une bibliothèque de classes vanille .net qui contient certains types qui sont [ComVisible] et l'ensemble est lui-même portant la mention « registre pour COM Interop ». Je suis en train de construire un programme d'installation de WIX pour l'application qui devra non seulement copier le .net assemblage au rép_installation sur la machine cible, mais aussi faire le travail d'enregistrement que l'objet de sorte que certaines applications VB6 héritage peut utiliser .net du montage.

Je me sers heat.exe (la tâche de fichier de chaleur plus précisément) pour récolter un fragment que j'ai inclus par un componentGroupRef dans mon fichier Wix. Ma question est si le fichier est heat.exe la récolte soit la sortie de fichier .tlb par ma bibliothèque de classe ou la dll elle-même? Si j'utilise heat.exe sur le .tlb je ne reçois aucun élément de registre dans le fragment, mais je fais avec la dll. Si je dois être avec la dll quel rôle joue le .tlb dans ce processus?

Im en utilisant la tâche ci-dessous de la chaleur dans 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" />
Était-ce utile?

La solution

Juste expédier le fragment avec la DLL et le COM pour elle. Vous n'avez pas besoin du TLB.

Autres conseils

Vous devriez récolter à la fois le .tlb et le fichier .dll. Certains outils ne peuvent utiliser que l'enregistrement de DLL, mais d'autres, comme les langages de script, ont besoin de la bibliothèque de type aussi bien. Il suffit de chauffer les deux, et inclure les résultats dans votre projet final. Par exemple, win32com de python et Win32 de Perl :: bibliothèques OLE à la fois des besoins de la bibliothèque de type enregistré à la fonction.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top