2011-07-11 16 views
8

C# y ile bir COM nesnesi oluşturdum ve bu da VS 2010 projemin bin/release dizininde üç dosyayla sonuçlandı (comclass.dll, comclass.pdb ve comclass.tlb). Şimdi, çözümü projede oluşturduğumda, VS sınıfı otomatik olarak geliştirme bilgisayarına kaydediyor ve COM nesnesine ve onun yöntemlerine, yani Powershell'e erişim konusunda hiçbir sorunum yok. Ben farklı bir makineye üç dosya kopyalama ve regsvr32 ile Dll kayıt çalıştığınızda Ancak,VS C# 2010 ile oluşturulmuş bir COM nesnesinin kaydedilmesi

modül "comclass.dll" yüklendi ama giriş noktası my_file.dll bulunamadığını söylüyor.

"comclass.dll" dosyasının geçerli bir DLL veya OCX dosyası olduğundan emin olun ve yeniden deneyin.

.tlb dosya üzerinde /tlb parametreyle regasm kullanmak bana da benzer bir mesaj veriyor. Bu yüzden biraz şaşırdım. Buradan nasıl ilerleyeceğimi bilen var mı?

cevap

11

Sadece dll kopyalamak (ve destenizin izleri dosya yolları ve satır numaralarını istiyorsanız Pdb isteğe bağlı). Visual Studio başarıyla kaydeder

"%WINDIR%\Microsoft.NET\Framework\v2.0.50727\regasm.exe" comclass.dll /tlb /nologo /codebase 

beri, bu işe yarayabilir: Bu kaydettirmeniz ve TLB böyle ortaya çıkıyor. Değilse, Rebuild'i gerçekleştirirken Çıkış panelini de açabilir ve Visual Studio'nun regasm'u nasıl çağırdığını görebilirsiniz.

+0

Teşekkürler Joe. C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727> regasm c: \ comtest \ comclass.dll/tlb/nologo/codebase Türleri başarıyla kaydedildi Derleme 'c: \ comtest \ comclass.tlb' olarak dışa aktarıldı ve kitaplığı başarıyla kaydedildi. Tam olarak ne istediğimi. Bunu bloguma koymaya gidiyorum. Tekrar teşekkürler. – deutschZuid