Я работаю над программой установки, которая создает MSI-файл.С ним связана программа CustomAction, написанная на C #.В этой программе CustomAction есть три ссылки на COM-объекты, которые необходимы для ее работы.Они заключаются в следующем.
- Предоставление активного пространства имен IIS DS (C: \ Windows \ System32 \ inetsrv \ adsiis.dll)
- Объектная модель хоста сценариев Windows (C: \ Windows \ System32 \wshom.ocx)
- NetFwTypeLib (C: \ Windows \ System32 \ FirewallAPI.dll)
В качестве дополнительной информации ниже приведены задачи, которые я использую эти библиотеки DLL в своей программеfor.
- Чтобы установить параметры MIME для определенного типа файла.
- Чтобы создать ярлык на рабочем столе для папки.
- Чтобы зарегистрировать программу какисключение брандмауэра
.
Теперь вот моя проблема.Когда я перестраиваю программу на C # и запускаю программу CustomAction из Visual Studio, она работает нормально, и я могу выполнить три вышеупомянутые задачи, как чудо.Однако, когда я на самом деле собираю MSI и пытаюсь выполнить его и установить программу в моей системе, выдает ошибку.Я использую японскую ОС, поэтому она выдает ошибку на японском, поэтому я постараюсь перевести сообщение об ошибке на английский как можно лучше.Ошибка выглядит примерно так:
*
Файл или сборка 'Interop.IISOle, Версия = 1.0.0.0, Культура = нейтральная, PublicKeyToken = null' или одна из ееЗависимости не могут быть загружены.Не удается найти указанный файл.
*
Это конкретное сообщение об ошибке выдается, поскольку оно относится к первому dll (adsiis.dll), поскольку оно содержит пространство имен IISOle.,Точно так же он выдает сообщения об ошибках, относящиеся ко всем трем объектам COM, на которые я ссылался из моей программы.Теперь я могу понять, что когда этот код находится внутри MSI-файла, он не может найти соответствующие COM-объекты.Я действительно сбит с толку, почему это происходит, поскольку программа установки выдает ту же ошибку, когда я пытаюсь установить программу даже на тот же компьютер, который я использовал для кодирования CustomAction.Как ни странно, он работает безупречно благодаря интерфейсу Visual Studio.Пожалуйста, помогите мне с этим.Заранее спасибо!
Обратите внимание, что я работаю в Windows Vista Business, но мне нужно, чтобы моя программа установки могла быть установлена на различные ОС Windows, от Windows Server 2003 до Windows 7.