C#引用COM对象,报错:《类型 *** 未定义构造函数, 无法嵌入互操作类型 *** 。请改用适用的接口》的解决办法。
错误信息:
1.类型“SQLDMO.BackupClass”未定义构造函数
2.无法嵌入互操作类型“SQLDMO.BackupClass”。请改用适用的接口。
代码如下:
SQLDMO.Backup backup = new SQLDMO.BackupClass();
SQLDMO.SQLServer sqlserver = new SQLDMO.SQLServerClass();
sqlserver.LoginSecure = false;
sqlserver.Connect("localhost", "sa", "");
backup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
backup.Database = "bingku";
backup.Files = @"E:\Project\meng\data\bingku.bak";
backup.BackupSetName = "bingku";
backup.BackupSetDescription = "数据库备份";
backup.Initialize = true;
backup.SQLBackup(sqlserver);
this.textBox1.Text += " 备份成功!";
解决方法:
1.右键点击SQLDMO.Backup,执行Go to definition看看它是不是有无参数的构造函数。
2. 选中项目中引入的dll,鼠标右键,选择属性,把“嵌入互操作类型”设置为False。