У меня есть c # -dll, и регистрация через regasm говорит об успехе, но идентификаторы GUID не были добавлены в реестр, и, следовательно, компонент нельзя нигде использовать. и я просто не знаю почему :(
атрибуты класса:
[ProgId( "blup" )]
[ClassInterface( ClassInterfaceType.None ), ComSourceInterfaces( typeof( blap ))]
[Guid( "0CFEF92B-A155-4353-B7A3-58A717193E0C" )]
[ComVisible( true )]
public class blup
...
атрибуты интерфейса:
[Guid( "9FD1B3E5-4873-403a-91AA-2EEC7296B38D" )]
[InterfaceType( ComInterfaceType.InterfaceIsIDispatch )]
[ComVisible ( true )]
public interface blap
...
assemblyInfo.cs:
...
[assembly: ComVisible( true )]
[assembly: Guid("37639A04-9DAC-40ee-ADBB-2F07F78FD265")]
...
опция, чтобы сделать сборку видимой, установлена в true. регистрация для com-interop установлена в false, так как я не хочу, чтобы она регистрировалась при каждой сборке.
регистрация через regasm / codebase -> успех. регистрация через regasm / codebase / tlb -> успешно.
но в обоих случаях я не могу найти ни одного из своих GUID в реестре.
При добавлении параметра / regfile в regasm файл создается, но состоит только из строк:
[HKEY_CLASSES_ROOT\Record\{D4DAB0A5-AC0A-3498-BD1E-6665735B5649}\1.3.3.7]
"Class"="<classname>+eventType"
"Assembly"="<name>, Version=1.3.3.7, Culture=neutral, PublicKeyToken=bba2258cd5ab986c"
"RuntimeVersion"="v2.0.50727"
"CodeBase"="file:///<filename>"
GUID из regfile нигде в vs-проекте не используется. все это работает - или, скорее, не работает - с Visual Studio 2008 на Windows 7 64.
заранее спасибо за любые подсказки. если я пропустил какую-то информацию, пожалуйста, дайте мне знать!