Delphi (win32 yerel) uygulamasından COM üzerinden çağıran bir C# derim var.Regasm.exe neden benim C# derlememi yanlış GUID ile kaydettiriyor?
Bu, üzerinde çalıştığım tüm makineler üzerinde çalışıyor, bunlardan biri hariç.
Sorun, COM nesnesini oluşturmaya çalışırken Delphi uygulamasının "Sınıf kayıtlı değil" olması.
Şimdi, HKEY_CLASSES_ROOT\DelphiToCSharp\CLSID
altında kayıt defterine baktığımda, orada listelenen GUID AssemblyInfo.cs derleme kılavuz ile aynı değildir. Aynı olmalı - kurulu olduğu tüm diğer bilgisayarlarda da aynı.
Ben regasm /unregister delphitocsharp.dll
denemiş ve bu kayıt defteri anahtarını kaldırır. Sonra regasm delphitocsharp.dll
yaparsanız, kayıt defteri anahtarını döndürür, ancak GUID öncekiyle aynıdır (yani yanlış) ve Delphi hala "Sınıf kayıtlı değil" alır. çalışma makinede
DelphiToCSharp.dll olmayan çalışma makinesi üzerinde sürüme (MD5 ile doğrulanmıştır) aynıdır.
Aklıma gelen tüm
dll eski bir sürümünü daha önce tescil edilmiş olması ve yine regasm karıştı yapıyor bu dosyanın bazı kalıntısını vardır.Bu sorunu nasıl giderebilirim veya en azından daha fazla teşhis edebilirim?
GAC'de olamaz, çünkü derlemem imzalı değil. İyi bir nokta olsa da, dosyanın diğer kopyalarını arayacağım. – Blorgbeard
.Net'in derleme yüklemesi, dll'yi win32'nin yaptığı gibi pek çok dizinde bulamaz, dolayısıyla bu durum pek de zor olamaz. –