2015-10-13 3 views
0

Я создал библиотеку классов C#, которая использует другие dll, сделанные другими в компании, для COM-взаимодействия. Он используется с MS Excel 2013 и отлично работает на моей машине разработки.Развертывание DLL C# COM с помощью установщика

Чтобы проверить его на других машинах, я скопировал выходные данные (файл dll и .tlb) в папку с моей системой 32. Затем я зарегистрировал dll с использованием regasm (используя аргумент/codebase). Наконец, я добавил ссылку на .tlb в редакторе Excel VBA. Хотя это немного утомительно с 6 dll, regasm работает отлично.

Следующим шагом является распространение листа Excel соответствующим пользователям в компании, где большинство из них расположены в разных частях мира в разных вариантах. Это означает, что я не знаю, какие программы установлены (например .net 4.5). Кроме того, поскольку большинство людей в компании мало знают о командной строке, использование вышеописанной процедуры не только немного утомительно, но и пугает людей. Поэтому я хотел бы сделать установщик.

Поскольку я использую VS2013, у меня есть installed a plug, который позволяет мне создать файл установки.

Я нашел this вопрос, который почти такой же, как у меня, но мне не нужна часть GAC. Как изменить процедуру для моих нужд? - Я попытался следовать приведенной процедуре, но я получаю сообщение об ошибке, когда одна из DLL я использую самостоятельно, не имеет сильного имени и не может быть в GAC. Поэтому сборка не выполняется. Как исправить это? - Мне нужно исправить dll, или я могу сделать это без GAC-части?

Как мне автоматизировать процесс установки моих библиотек? - Альтернативой сейчас является развертывание VS2013 для пользователей и заставить их запустить проект и зарегистрировать его (достаточно ли VS-экспресс?).

Заранее спасибо - я начал этот проект с небольшого опыта, поэтому кривая обучения немного крутая.

+0

Используя ILSpy, я вижу, что DLL, которая не удалась в сборке установщика, имеет publictoken = Null. Я предполагаю, что это корень моей проблемы. Возможно, я смогу заставить его работать, если я получу это исправление, и попробуйте снова создать установщик. – Anima

ответ

0

Непонятно, что именно вы хотите сделать, но эта ссылка говорит вам, как регистрировать Dlls - просто посмотрите на свойства каждой Dll и установите свойство register. Вы также можете добавить свой файл tlb в свою установку и отметить, что для регистрации тоже. Если это не то, что вы пытаетесь сделать, отредактируйте вопрос.

p.s. Не помещайте tham в системную папку - надуть их в папку общих файлов вашей компании/приложения.

+0

Hi Phil Короче говоря, я создал файл dll и tlb из проекта класса в C#. Когда проект построен на C#, он регистрирует DLL для меня. Когда мне нужно его развернуть, я обычно использую regasm. Мне нужно сделать установщик, так как мой босс не хочет, чтобы пользователи использовали regasm, и поэтому хочет, чтобы установщик выполнял регистрацию для них. – Anima