【问题标题】:Regasm BHO from C# Code来自 C# 代码的 Regasm BHO
【发布时间】:2018-04-12 15:49:31
【问题描述】:

我有带有 BHO IE 插件的 DLL。

我使用“regasm.exe /codebase myBHO.dll”来注册我的 dll。

是否有任何 C# 代码可以在 Windows 应用程序中 regasm 我的 DLL?

【问题讨论】:

  • 这是安装人员的工作。例如,一个 VS Setup 项目就支持它。请避免编写自己的安装程序。但如果你坚持,那么你可以使用 RegistrationServices.RegisterAssembly()。请注意,UAC 提升是必需的。
  • 谢谢,但我不知道如何在 VS 安装项目中执行此操作,当我将我的 Dll 的“注册”属性设置为“vsdraCOM”时不起作用

标签: c# bho regasm


【解决方案1】:

为此创建一个专用安装程序。

为了从 Visual Studio 快速调试周期,设置一些构建事件,如下所示:

"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\x64\gacutil.exe" /f /i $(TargetDir)$(TargetFileName) 
"%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" /unregister $(TargetDir)$(TargetFileName)
"%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" $(TargetDir)$(TargetFileName) /regfile:$(TargetFileName)64.reg
"%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" /codebase $(TargetDir)$(TargetFileName)

"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe" /f /i $(TargetDir)$(TargetFileName) 
"%WINDIR%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" /unregister $(TargetDir)$(TargetFileName)
"%WINDIR%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" $(TargetDir)$(TargetFileName) /regfile:$(TargetFileName)32.reg
"%WINDIR%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" /codebase $(TargetDir)$(TargetFileName)

然后,定义一个[ComRegisterFunction] 像:

[ComRegisterFunction]
public static void RegisterBHO(Type type)
{
    RegistryKey key;
    using (key = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects"))
    {
      RegistryKey bhoKey;
      using (bhoKey = key.CreateSubKey(typeName))
      {
        bhoKey.SetValue(string.Empty, "My Awesone IE Plugin");
        bhoKey.SetValue("NoExplorer", 1, RegistryValueKind.DWord);
      }
    }      
}

【讨论】:

  • 这对我很有帮助。我必须将 key.CreateSubKey 行更改为 key.CreateSubKey(type.GUID.ToString("B"))。
猜你喜欢
  • 2013-10-02
  • 1970-01-01
  • 1970-01-01
  • 2014-08-20
  • 1970-01-01
  • 1970-01-01
  • 2013-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多