你可以失去的人工呼叫是通過使用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