Попытка получить TFS TeamBuild для построения C #> VB6> приложения C # (Comreference Probs?)

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

  •  13-12-2019
  •  | 
  •  

Вопрос

Я пытаюсь получить TFS Team-Build, чтобы надежно создать приложение WPF C #. Это приложение полагается на VB6LIB.dll, которое мы поддерживаем, сам этот VB6Lib.dll полагается на других библиотек C #, которые мы также поддерживаем.

Я настроил определение сборки для создания (в порядке):

    .
  • vbdependonds.sln (все libs в этом есть COM-интернат, поэтому VB6 может найти свои TLBS)
  • buildvb6lib.proj (файл msbuild, который вызывает "vb6.exe / make / d", чтобы сделать VLIB.DLL на сервере сборки, как часть этого сценария, который я копирую вывод VB6LIB.DLL в C: \ tmp)
  • mainapp.sln (в моем рабочем пространстве я добавил ссылку на c: \ tmp \ vb6lib.dll)

Это звучит хорошо ? На моем ноутбуке Dev я обычно создаю VB6, скопируйте свой вывод на \ TMP, а затем regsvr32 его там перед добавлением ссылки на него в моем решении C #. Это этот шаг, который я не убежден, что моя сборка Def делает.

Кроме того, есть ли способ получить более полезный вывод из сборки VB6, в настоящее время я получаю «Ошибка компиляции в файле xxx.bas» может «найти проект библиотеки», но не какую фактическую библиотеку не могу найти ,

Приветствия

Это было полезно?

Решение

Вы правы в том, что критическая точка вашего процесса сборки в системе разработки заключается в регистрации объекта COM.Тем не менее, в целом не хочет зарегистрировать объект COM на сервере сборки, так как это может привести к тому, что всевозможные проблемы версий и бесшумные сбои, когда неправильный объект COM зарегистрирован, или регистрация не удается.

Правильный способ выполнить это - генерировать вручную сборку взаимодействия вручную и ссылку вместо COM-объекта.Это достигается с утилитой TLBIMP, например:

tlbimp ..\Libraries\VBLib.dll /out:..\Libraries\Interop.VBLib.dll
.

Запустите эту команду в вашей системе разработки, затем удалите ссылку на VB6LIB.dll и добавьте ссылку на interop.vblib.dll.Затем вы можете добавить команду TLBIMP в качестве мероприятия Prebuild в проекте ссылки на ссылке, чтобы в Сборке Interop всегда строить из правильной версии, и вы больше никогда не должны иметь свой COM-объект, зарегистрированный в системе сборки.

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