Использование WIX для регистрации .NET Assumber отмечена для Com Interop

StackOverflow https://stackoverflow.com/questions/3691506

Вопрос

У меня есть библиотека классов ванили .NET, которая содержит некоторые типы, которые [Comisible] и сама сборка помечается «Регистрация для Com Interop». Я пытаюсь построить Установщик WIX для приложения, который должен не только скопировать .NET в монтажу на установочный дисплей на целевой машине, но и выполнять работу регистрации, чтобы объект, так что некоторые устаревшие приложения VB6 могут использовать приложения из сборки .NET.

Я использовал Heat.exe (более точно задание файла теплового файла), чтобы собрать фрагмент, который я включал через компонентгрупрофор в моем главном файле Wix. Мой вопрос - это если файл, который Heat.exe собирает составлять файл .tlb, выводимый в моей библиотеке классов или самой DLL? Если я использую Heat.exe на .tlb, я не получаю никаких элементов реестра в фрагменте, но я делаю с DLL. Если бы я должен использовать DLL, какую роль играет .tlb в этом процессе?

Я использую ниже тепловую задачу в 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" />
Это было полезно?

Решение

Просто отправляйте фрагмент с DLL и COM для него. Вам не нужен TLB.

Другие советы

Вы должны собрать файл .tlb и .dll. Некоторые инструменты могут использовать только регистрацию DLL, но другие, такие как языки сценариев, нуждается в библиотеке типа также. Просто нагрейте их обоих, и включите оба выхода в ваш последний проект. Например, библиотеки Python's Win32Com и Perl's Win32 :: OLE используют библиотеку типа, зарегистрированную для функции.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top