Domanda

Ho una libreria di classi .NET di vaniglia che contiene alcuni tipi che sono [ComVisible] e l'assemblea si è contrassegnato "Registra per interoperabilità COM". Sto cercando di costruire un programma di installazione WIX per l'applicazione che dovrà non solo copiare l'assembly .NET alla installationDir sulla macchina di destinazione, ma anche fare il lavoro di registrare che l'oggetto in modo che alcune applicazioni legacy VB6 può fare uso di .NET di montaggio.

ho usato heat.exe (il compito file di calore più precisamente) per raccogliere un frammento che ho inserito tramite un componentGroupRef nel mio file Wix principale. La mia domanda è caso in cui il file è heat.exe raccolta sia l'output file TLB dalla mia libreria di classi o la dll in sé? Se heat.exe io uso il TLB non ottengo alcun elemento di registro nel frammento, ma lo faccio con la dll. Se devo essere utilizzando la dll che ruolo fa il gioco TLB in questo processo?

Im utilizzando il sottostante compito di calore 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" />
È stato utile?

Soluzione

Basta spedire il Frammento con la DLL e il COM per esso. Non è necessario il TLB.

Altri suggerimenti

Si dovrebbe raccogliere sia la TLB e il file dll. Alcuni strumenti possono utilizzare solo la registrazione DLL, ma altri, come i linguaggi di scripting, hanno bisogno la libreria dei tipi pure. Basta riscaldare entrambi, e comprendono entrambe le uscite nel progetto finale. Ad esempio, librerie OLE Perl :: Win32 di pitone win32com ed entrambi hanno bisogno della libreria dei tipi iscritto alla funzione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top