2016-10-26 2 views
0

Я поддерживаю инструмент Windows, который был написан на C# с использованием VS2008. Инструменты называются STAS. У STAS есть функция, которая позволяет пользователям вызывать «открытые функции» в инструменте, используя скрипты Python. STAS инициализирует COM-объект, содержащий интерфейс для этой функции. Сценарий Python использует модуль win32.client.GetObject для получения COM-объекта. Переменная, возвращаемая GetObject, используется для вызова открытых функций.Настройки реестра Windows отсутствуют с помощью конвертера Wix

Я попросил руководство моей компании конвертировать STAS в VS2015. Файлы установки vdproj не поддерживаются в VS 2015. VS2015 использует Wix для проектов установщика. Я использовал программу конвертации «vdproj to wix» для создания проекта установщика wix.

У меня установлен установщик и установлен инструмент STAS. Я видел, что скрипты Python не работали.

Я установил STAS, построенную на VS2015. Затем я запустил программу RegShot для сравнения реестра и выбрал «1-й снимок». Затем я установил инструмент STAS с использованием версии VS2008 и снова запустил RegShot, чтобы сравнить реестр. RegShot показал, что в реестр добавлено 604 ключа. 1159 Значения были добавлены в реестр.

Я установил STAS, построенную с VS2008. Затем я повторил процесс создания STAS с VS 2015. Когда я запустил RegShot до и после того, как VS2015 STAS был включен, RegShot показал только 35 ключей. Добавлены значения 415.

У меня есть следующие вопросы: 1. Кто-нибудь видел эту проблему с программой конвертера Wix, потеряв сотни настроек реестра?

  1. Есть ли способ импортировать файл .reg в файл WIX .wxs? В реестре с установкой VS2015 STAS отсутствует столько настроек, что потребуется слишком много времени, чтобы вручную добавить их в установочный файл Wix. Я видел этот сайт: http://neilsleightholm.blogspot.com/2010/06/wix-reg-file-heat-extension.html

  2. Пробовал ли этот метод?

Я не знаю много о проектах установщика VS и настройках реестра. Спасибо за любую помощь.

+0

проекты монтажника поддерживаются в VS 2015, если вы установите расширение установки https://visualstudiogallery.msdn.microsoft.com/f1cc3f3e-c300-40a7-8797-c509fb8933b9 – PhilDW

ответ

0

несколько вариантов, вы можете использовать:

  1. Вы, вероятно, нужно добавить SelfRegCost=1 к компонентам, которые способны быть зарегистрированы DLLRegisterServer. Вероятно, это то, что делал старый установщик, и это самый быстрый способ повторного внедрения этого поведения. (это не считается лучшей практикой)

    Я бы посмотрел на vs2008 msi в Orca и посмотрел, есть ли у него таблица SelfReg. Если это так, выясните, какие файлы он ссылается, и в вашем новом проекте wix добавьте атрибут SelfRegCost=1 в свои теги файлов.

  2. Используйте тепловой инструмент. Я запустил инструмент нагрева только на файлы в таблице selfreg vs2008 msi, а затем скопировал в данные реестра выходного компонента в ваши новые файлы wix для соответствующих компонентов.

  3. Проверьте таблицу реестра vs2008 msi и посмотрите, содержит ли она все эти отсутствующие записи. Я предполагаю, что это не будет, так как это не было скопировано в конверте, которое вы сделали. Если эти записи есть, вы должны иметь возможность использовать dark.exe в msi и получать от него информацию в таблице реестра.

  4. Еще лучше, возьмите свой msi, созданный vs2008, и используйте на нем программу dark.exe (часть набора инструментов wix). Это должно декомпилировать ваш msi в используемые wix-файлы. Вы можете выбрать и выбрать файлы, которые хотите скопировать, или просто использовать полный декомпилированный вывод, хотя он может быть довольно многословным и трудно читаемым и трудно поддерживать или изменять.

+0

Спасибо за предложения. Я использовал инструмент Wix dark и создаю новый проект установщика Wix. К сожалению, установщик Wix по-прежнему не устанавливает все настройки реестра. Я попытаюсь использовать тепловой инструмент для импорта настроек реестра. – user1094610

Смежные вопросы