Имя: Пароль:
1C
 
Технология создания вн. компоненты...нужна помощь
Ø
0 alexxey
 
17.02.05
19:47
Народ пытаюсь разобраться с технологией создания ВК для 1С
Использую технологию создания ВК от 1С, а именно для VB.net
в приведенной 1С конфе с использованием их библиотек - все отлично работает, но если я сам компилирую их же библиотеку Addin.dll, то при вызове ЗагрузитьВнешнююКомпоненту("AddIn.dll") программа выдает ошибку
В чем может быть проблема?
1 АЛьФ
 
17.02.05
19:49
Права?
2 alexxey
 
17.02.05
19:54
Какие права?
3 alexxey
 
17.02.05
19:58
Библиотка вроде бы создается все ок...правда смущает файл Interop.AddInLib.dll он создается все время с одной и той же датой 09.2003
AddinLib я добавляю в reference из файла Addin.tbl который также идет на диске "Технология создания ВК"
4 АЛьФ
 
17.02.05
20:19
Какую ошибку-то выдает?
5 alexxey
 
17.02.05
20:21
{Обработка.ПримерРаботыСКомпонентой.Форма.ФормаРаботыСКомпонентой(67)}: Ошибка при вызове метода контекста (ЗагрузитьВнешнююКомпоненту): Ошибка при загрузке внешней компоненты
ЗагрузитьВнешнююКомпоненту("Addin.dll");
6 АЛьФ
 
17.02.05
20:22
2(5) V8?
7 alexxey
 
17.02.05
20:23
ДА
8 alexxey
 
17.02.05
20:27
Как я понял для vb.net нужно в каталог 1cv8\bin скопировать 2 dll - AddIn и Interop.AddInLib
Так вот если я с диска их копирую, тут все ОК - работает
А если запускаю Visual Studio .Net и делаю там Build AddIn, то при копировании получившихся AddIn и Interop.AddInLib в 1cv8\bin выдается такая ошибка. Как я уже говорил Interop.AddInLib.dll создается один в тем по дате создания с тем что лежит на диске от 1С, т.е. 12.09.2003
9 alexxey
 
17.02.05
20:29
Извиняюсь конец (8) такой: Interop.AddInLib.dll создается один в один по дате создания с тем что лежит на диске от 1С, т.е. 12.09.2003
10 Эстет хренов
 
17.02.05
20:33
там в настройках солюшена директория скомпилированной dll указана явно, замени на defaults
11 alexxey
 
17.02.05
20:38
(10)Чего-то не найду где тут директория скомпилированной dll указывается
12 Эстет хренов
 
17.02.05
20:40
Project-Options-Linker-Output files
13 alexxey
 
17.02.05
20:40
Да вот еще что заметил - почему получающаяся после компиляции dll гораздо меньше по размеру чем 1с-овская
14 alexxey
 
17.02.05
20:43
У меня dll создается в каталоге bin который также автоматом создается в каталоге, где лежит проект vb
15 alexxey
 
17.02.05
20:50
так с размером вроде разобрался - стояла галка типа оптимизация при компиляции, но все равно не работает :(
16 alexxey
 
18.02.05
10:32
up!
17 Gloom
 
18.02.05
10:36
Как у тебя класс, реализующий интерфейс IInitDone называется?
18 alexxey
 
18.02.05
10:41
AddInObj
вот кусок кода:
Public Class AddInObj
    Implements AddInLib.IInitDone
    Implements AddInLib.ILanguageExtender
19 Gloom
 
18.02.05
10:43
(18)Тогда сборка должна тоже называться AddInObj.dll...
20 alexxey
 
18.02.05
10:53
а почему?
21 Gloom
 
18.02.05
10:57
(20)При вызове ЗагрузитьВнешнююКомпоненту() 1цэ пытается получить ProgID COM-объекта из ресурсов, а если не может, то по имени dll.
И поскольку у .Net сборок формат ресурсов другой, нежели у обычных dll, то см. (19)...
22 alexxey
 
18.02.05
11:01
Я понял...спасибо - заработало :-))
а если я буду вызавать ПодключитьВнешнююКомпоненту(ProgID)?
в этом случае может имя класса отличаться от имени библиотеки?
23 Gloom
 
18.02.05
11:04
(22)Само собой...
24 alexxey
 
18.02.05
11:05
Ясно...еще раз огромное спасибо