c# - 注册 dll - 在注册表中找不到 GUID

标签 c# visual-studio-2008 dll registration

我有一个 c#-dll 并通过 regasm 注册告诉我成功,但 GUID 尚未添加到注册表中,因此该组件不能在任何地方使用。 我根本不知道为什么 :(

类属性:

[ProgId( "blup" )]
[ClassInterface( ClassInterfaceType.None ), ComSourceInterfaces( typeof( blap ))]
[Guid( "0CFEF92B-A155-4353-B7A3-58A717193E0C" )]
[ComVisible( true )]
public class blup
...

接口(interface)属性:

[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")]
...

使程序集可见的选项设置为真。 注册 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 项目中的任何地方使用。 整个事情正在运行 - 或者更确切地说运行 - 在 windows 7 64 上使用 visual studio 2008。

提前感谢任何提示。 如果我错过了一些信息,请告诉我!

最佳答案

问题可能在 different view of the registry for 32-bit and 64-bit programs 中.类似于您将 .dll 注册为 64 位服务器,然后使用 32 位注册表编辑器查看,反之亦然。

关于c# - 注册 dll - 在注册表中找不到 GUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3395197/

相关文章:

c# - Entity Framework 4.1 Code First - 使用 LinqKit PredicateBuilder 时忽略包含

c# - 当没有满足任何 DataTrigger 值时设置属性 WPF

c# - 如何在 Entity Framework 中使用事务?

c# - 比较两个 DLL

c# - 将字符串从 C# 传递到 C DLL

c# - 数据库存储的简单加密/解密

c# - CSS 选择器 - 获取了解元素子元素的元素

visual-studio-2008 - 防止在 Crystal Report 上显示空白区域并抑制页脚

c++ - 系统函数似乎忽略了引号

java - 新的dll "sunec.dll"文件和JAVA7有什么用