Bir makinede bir. Net COM dll (hata ayıklama x64) oluşturdum. Tüm kurulum ve orada çalışıyorum (C: \ Windows \ Micorosft.NET \ assembly ve OLEVIEWER'da görebiliyorum).COM .NET DLL GAC'de (REGDB_E_CLASSNOTREG) kaydetmiyor
Dll'yi başka bir makineye götürdüm (bununla birlikte .h ve MIDL'den oluşturulan .c dosyası). Ben bu adımları http://codeingaddiction.blogspot.com/2011/06/how-to-add-strong-name-to-existing-dll_16.html takip ederek GAC içine dll kayıt - anahtar çifti oluşturmak, MISL oluşturmak, anahtar ile MISL montaj yeniden ve ardından GAC ekleyerek. GAC'de görünüyor ve gacutil/l MyDllName ile aramayı deneyebilirim. Ancak, benim istemci uygulamasında, ona karşı bağlantı kurarken, CoCreateInstance
çağrılırken çalışma zamanında REGDB_E_CLASSNOTREG
(HRESULT) olsun. C: \ Windows \ Microsoft.NET/Assembly veya OLEVIEW içinde dll göremiyorum.
Herhangi bir adımı kaçırdım veya yanlış bir şey mi yaptım? senin .net COM DLL kayıtlı olmadığından
Teşekkür
Montajı kaydetmek için Regasm.exe'yi kullanmadan hiç bahsetmediniz. Projenin "COM etkileşimi için kaydet" onay kutusunu kullandığınızda, bunu dev makinenizde atlayabilirsiniz. Kullanıcının makinesinde değil elbette. MIDL kullanmak oldukça garip bir btw, bu kundak çalmıyor. –
, MIDL kullanmıyorsa (http://codeingaddiction.blogspot.com/2011/06/how-to-add-strong-name-to-existing-dll_16.html şovdaki öğretici olarak), "kosher" nedir? Bunu yapmanın yolu? (btw benim MIDL kullanarak düşündüm biraz hacky olduğunu) – Prof
Normalde bir yönerge direktifini bir C++ programında kullanırdınız. –