你可以失去的人工呼叫是通过使用System.Runtime.InteropServices.RegistrationServices改为器regasm.exe:
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);
RegistrationServices regsrv = new RegistrationServices();
if (!regsrv.RegisterAssembly(GetType().Assembly, AssemblyRegistrationFlags.SetCodeBase))
{
throw new InstallException("Failed to register for COM Interop.");
}
}
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
public override void Uninstall(IDictionary savedState)
{
base.Uninstall(savedState);
RegistrationServices regsrv = new RegistrationServices();
if (!regsrv.UnregisterAssembly(GetType().Assembly))
{
throw new InstallException("Failed to unregister for COM Interop.");
}
}
这也会在卸载时取消注册库。
此代码应该添加到什么位置?我有一个VB.net项目,它需要regasm并且有一些C#依赖项。这两个方法可以添加到实现哪个超类或接口的类中? – Amala 2012-04-25 16:13:47