Pregunta

Tengo una biblioteca de clases .NET de vainilla que contiene algunos tipos que son [ComVisible] y el conjunto en sí está marcado "Registrar para interoperabilidad COM". Estoy tratando de construir un instalador WIX para la aplicación que será necesario no sólo copiar el .net conjunto a la dir_instalación en el equipo de destino, sino también hacer el trabajo de registrar que el objeto de modo que algunas aplicaciones de legado puede hacer uso de VB6 de .NET montaje.

He estado usando heat.exe (archivo de la tarea de calor más precisamente) para cosechar un fragmento que he incluido a través de una componentGroupRef en mi archivo principal Wix. Mi pregunta es si el archivo que heat.exe es la cosecha sea la salida del archivo .tlb por mi biblioteca de clases o la propia DLL? Si uso heat.exe en el .tlb no consigo ningún elemento del registro en el fragmento, pero lo hago con el archivo DLL. Si debo ser el uso de la DLL lo que papel juega .tlb en este proceso?

Im mediante el siguiente tarea de calor en 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" />
¿Fue útil?

Solución

apenas enviamos el fragmento con el DLL y la OCM de la misma. No es necesario el TLB.

Otros consejos

Se debe cosechar tanto el .tlb y el archivo .dll. Algunas herramientas pueden utilizar sólo el registro de DLL, pero otros, como los lenguajes de script, necesita la biblioteca de tipos también. Basta con calentar ambos, e incluyen tanto las salidas en su proyecto final. Por ejemplo, de Perl Win32 :: win32com de pitón y bibliotecas OLE ambos necesitan la biblioteca de tipo registrado a la función.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top