我有一个c#-dll并通过regasm注册告诉我成功,但GUID尚未添加到注册表,因此,该组件无法在任何地方使用。注册DLL - 注册表中找不到GUIDs
[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")]
...
选项,以使 为什么:(
类属性我已经得到了根本不知道assembly com-visible设置为true。 注册为com-interop ist设置为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>"
从REGFILE的GUID没有在VS项目的任何地方使用。 整个事情正在运行 - 或者更确切地说不运行 - 与Visual Studio 2008在Windows 7 64
感谢提前任何提示。 如果我错过了一些信息,请告诉我!
我有这个相同的问题,它已经4年没有答案。你有没有发现它?奇怪的是,它说在2个不同的机器上成功。但是只有其中一台机器将条目添加到注册表中。 – mdiehl13 2014-10-17 10:14:07
好的,我想出了我的问题。我正在安装的计算机尚未安装extensibilityMSM.msi。安装程序在调用Regasm之后而不是之前安装它。 – mdiehl13 2014-10-17 13:46:35