Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: Как на VB.Net написать dll и вызвать ее из Access?
     
    
Добавлено: 16.07.10 14:32
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
    
 Jak | Web-сайт: musautomat.ru | ICQ: 340809754 
      
       
  
Задача: Написать dll формирующую отчеты Crystal Reports и вызывать её из VB.Net проекта и из MS Access. 
 
    
Что сделал:
На vb.net написал COM класс, скомпилировал, зарегистрировал regasm'ом, в аccess'е сделал ссылку на библиотеку. всё хорошо вызывается, отчеты формируются.
Проблемы начинаются когда пытаюсь раздать dll пользователям ms access. На их машинах регистрирую dll'ку. Она успешно регистрируется, но при попытке создать на VBA в экземпляр класса вылетает с исключением вне зависимости от того установлен на этой машине проект или нет.
Runtime error '-2147024894 (80070002)'
Automation error
Не удается найти указаннный файл.
Из VB.Net проекта у пользователей всё работает и формируется.
Думаю, что это связано с тем, что моя dll ссылается на другие dll, которых нет у пользователей или она ищет их не там где надо.
В папке с публикацией VB.Net нашел crystalreports10_5\CRRedist2008_x86.msi. Установил. Не помогло.
Я вижу два пути решения:
1. Сделать проект установки, который бы устанавливал и регистрировал на машине пользователя мою dll и всё, что ей требуется. Не смог нигде найти примера. Расскажите по шагам как это сделать или дайте ссылку
2. Посмотреть в ссылках все dll, на которые ссылается мой com класс и зарегить их вручную. Думаю идея не очень, потомучто те dll в свою очередь ссылаются еще на что-нть и т.д..
Буду рад любому ответу: Пошаговой инструкции, ссылке на статью, идее... :)
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 4
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа:
 Сергей
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
ICQ: 558230345 
Вопросов: 7
Ответов: 91
      
 Профиль |  | #1
       
Добавлено:  16.07.10 15:13
       
    
       
  
в какой папке сохраняешь и регистрируешь библиотеку?
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа:
 Jak
![]()
![]()
![]()
ICQ: 340809754 
Вопросов: 17
Ответов: 25
      
 Web-сайт:  
 Профиль |  | #2
      
Добавлено:  16.07.10 15:18
       
    
       
  
c:\account2\lib
 
    
c:\account2\ - папка access проекта (ade)
в подпапку lib планирую кидать dll'ки
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа:
 Artyom
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Разработчик
Вопросов: 130
Ответов: 6602
      
 Профиль |  | #3
       
Добавлено:  16.07.10 17:12
       
    
       
  
Сложно сказать, не пробовал FileMon'ом посмотреть какой файл он пытается найти?
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа:
 Jak
![]()
![]()
![]()
ICQ: 340809754 
Вопросов: 17
Ответов: 25
      
 Web-сайт:  
 Профиль |  | #4
      
Добавлено:  26.07.10 16:42
       
    
       
  
Cделал Setup Project в Solution на NET. 
 
    
После его запуска он сам регистрирует мой COM объект и устанавливает всё зависимости.
Всё работает!