0
我有DLL和BHO IE插件。來自C#的Regasm BHO代碼
而我使用「regasm.exe/codebase myBHO.dll」來註冊我的dll。
是否有任何C#代碼到regasm我的DLL在Windows應用程序?
我有DLL和BHO IE插件。來自C#的Regasm BHO代碼
而我使用「regasm.exe/codebase myBHO.dll」來註冊我的dll。
是否有任何C#代碼到regasm我的DLL在Windows應用程序?
爲此創建一個專用安裝程序。
對於從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」))。 – Scott
這是一個安裝程序的工作。例如,VS Setup項目支持它。避免編寫自己的安裝程序。但是如果你堅持,那麼你可以使用RegistrationServices.RegisterAssembly()。請注意,UAC標高是必需的。 –
謝謝,但我不Khow如何做到這一點在VS安裝項目,當我設置「註冊」屬性我的DLL到「vsdraCOM」不工作 –