Тиражирование Visual Studio регистрация COM с Установщиком WiX

Наиболее компактный и оптимизированный способ переписать ваш код, который я могу себе представить, заключается в следующем:

let usersCount = 23;
let rounded;
let x = 10 ** (usersCount.toString().length - 1);
rounded = Math.floor(usersCount / x) * x;

Он должен работать рекурсивно без ограничений, как вы и просили.

36
задан 12 revs 23 May 2017 в 10:31
поделиться

3 ответа

Необходимо использовать Тепло (WIX 3.0), расположенный в каталоге bin версии, которую Вы используете. Взгляните на этот сообщение блога , мы используем его здесь для регистрации всех наших COM-объектов путем создания wix фрагмента...

что-то как

heat file MyComExposedLibrary.dll -out MyComExposedLibrary.wxs

После, читая Ваше редактирование, я создал бы основной msi с wix, который устанавливает com, возражают только, видят, работает ли это... затем, Вы будете знать который поле битвы напасть...

11
ответ дан Wolf 27 November 2019 в 06:18
поделиться

Для извлечения информации COM масло будет использовать инструмент regasm.exe включенный с платформой.NET. Вероятно, что Visual Studio использует тот же инструмент для регистрации блоков при включении "регистра для взаимодействующего с COM".

различие - то, что масло будет использовать regasm/regfile, переключаются для отправки информации в .reg файл вместо того, чтобы на самом деле регистрировать блок. К сожалению, .reg файл, сгенерированный regasm.exe, не завершен. Это пропускает typelib записи, которые это действительно пишет в реестр во время реальной регистрации. Это может быть ошибкой в regasm.

Для получения установщика, работающего Вас, имеют три опции:

  1. Добавляют недостающие ключи реестра к производству масла вручную. Производство масла предназначается, чтобы быть отредактированным вручную и сохраненным наряду с Вашими другими wxs файлами так или иначе. Вы, кажется, пробуете к полностью, автоматически генерируют работу wxs файл, но я полагаю, что это никогда не было целью дизайна масла.

  2. Использование пользовательское действие для вызова regasm из установщика. Это является немного злым, потому что можно потерять некоторые сильные транзакционные гарантии, обеспеченные механизмом установщика Windows. Я думаю об откатах, инициированных отказом на полпути во время установки здесь.

  3. Избегают регистрации в целом путем использования COM без регистрации. Это потребует создания файлов манифеста и для приложения и для библиотеки COM.

2
ответ дан Wim Coenen 27 November 2019 в 06:18
поделиться

Недавно я столкнулся с этой проблемой, и простейший обходной путь, который я смог найти, состоит в следующих шагах на машине разработки:

  1. Выполнить: Regasm MyDLL.dll /tlb:MyDLL.tlb[121estive Run: Heat file MyDLL.dll -out MyDll-1.wxs
  2. Выполнить: Тепловой файл MyDll.tlb -out MyDll-2.wxs

MyDll-2.wxs содержит элемент , который вы хотите скопировать и вложить в элемент , созданный в MyDll-1.wxs. Это даст вам полный элемент , который вы можете использовать в проекте установщика.

5
ответ дан 27 November 2019 в 06:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: