2013-04-17 6 views
1

Я работаю над проектом Installshield, у которого есть dlls. Com. Com.Регистрация com interop dll в .net

  • Я использовал команду C:\Windows\Microsoft.NET\Framework\v4.0.30319\Regasm.exe /tlb myassembly.dll /codebase для регистрации сборок.
  • Теперь мой вопрос: когда VS2010 установлен на машине, Установщик работает правильно. Но если VS2010 не установлен на машине , устанавливается только точка net Framework, установщик не работает правильно и выдает сообщение об ошибке «Убедитесь, что объект введен в системный реестр ».
  • Может ли любой орган рассказать мне причину проблемы.
+0

Почему бы не просто установить на экран данные COM во время сборки? – NGaida

+0

Я пробовал, но не работал. – vsoni

ответ

2

COM Extract at Build предназначен для неуправляемых библиотек DLL. Свойство .NET COM Interop для COM Visible. Это заставит InstallShield выполнять regasm/regfile во время процесса сборки и собирать результат в таблицу реестра. Во время установки реестр будет написан без необходимости вызова процесса в Regasm.

В Regasm на MSDN есть примечание о/regfile, не выполняющее/фиксирующий код регистрации пользователя. Если этот процесс по-прежнему недостаточно хорош, используйте такой инструмент, как InstallWatch, чтобы фиксировать/различать до и после реестра, чтобы наблюдать, что было «отсутствует», а затем автор, что в InstallShield в представлении реестра. Перестройте, перезагрузите виртуальную машину и промойте и повторите, пока она не сработает.

0

Этот «C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Regasm.exe/tlb myassembly.dll/codebase» работает только в том случае, если на целевой машине установлен .NET 4.0 и выше. Для предыдущих версий .NET работают Regasm.exe из 2.0.5077 папки: "C: \ Windows \ Microsoft.NET \ Framework \ v2.0.5077 \ Regasm.exe/TLB myassembly.dll/кодовая"

см реестра HKLM \ Software \ Microsoft.NET Framework \ для получения дополнительной информации о установленных версиях .NET

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