Делаете установщик для .net приложения, которое зависит от avifil32.dll? - PullRequest
1 голос
/ 09 августа 2010

Я новичок в .net, и у меня возникла эта проблема: я хочу сделать установщик для приложения, которое использует упаковщик avi, описанный здесь . Эта библиотека зависит от avifil32.dll, как я обнаружил в источнике, который содержит

[DllImport("avifil32.dll", PreserveSig=true)].

Я сделал установочный проект в visual studio 2008, и на некоторых машинах программа установки работает нормально. Но есть одна машина, которая не работает, и она ломается точно в части, связанной с экспортом .avi, поэтому я предположил, что причина в чем-то связана с этой внешней зависимостью. Как мне сделать так, чтобы установщик включал этот (или вообще любой) внешний dll, если он отсутствует на целевой машине?

Ответы [ 2 ]

1 голос
/ 09 августа 2010

Спасибо TooFat за ваш совет. Это помогло мне понять, что мое предыдущее предположение об отсутствии avifil32.dll было неверным.

Реальной причиной моей проблемы было то, что я использовал библиотеку aviwrapper для экспорта растровых изображений в avi и mpeg (я немного изменил библиотеку, чтобы иметь возможность переключаться между обычным и xvid кодеком). Он работал на моем настольном компьютере и ноутбуке, потому что там у меня уже был установлен кодек xvid, но на виртуальной машине с чистой Windows XP он не работал (кодек xvid отсутствовал). Я понял это, посмотрев файл журнала. На самом деле мой метод пытался сначала экспортировать в .mpg, а затем получил исключение при сжатии avi (из-за xvid). После этого он пытается экспортировать в .avi, но предыдущая попытка что-то испортила, а экспорт в .avi вызывает исключение при открытии файла (оба экспорта используют одно и то же временное имя файла, и поэтому он вызывает исключение при открытии файла).

После того, как я закомментировал экспорт .mpg, все работало просто отлично, и мне не пришлось включать вышеупомянутую dll.

Еще раз спасибо за ваш ответ.

1 голос
/ 09 августа 2010

Можете ли вы просто щелкнуть правой кнопкой мыши по первичному выходу в вашем проекте установки, затем щелкнуть правой кнопкой мыши по папке приложения, выбрать Добавить сборку и перейти к вашей dll?

Если вы затем щелкнете правой кнопкой мыши по сборке, вам может потребоваться установить параметры регистрации, чтобы зарегистрировать dll при установке.

Вот статья , которая может помочь.

...