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:Projectmengdataingku.bak";
                backup.BackupSetName = "bingku";
                backup.BackupSetDescription = "数据库备份";
                backup.Initialize = true;
                backup.SQLBackup(sqlserver);

                this.textBox1.Text += "   备份成功!";

解决方法:

1.右键点击SQLDMO.Backup,执行Go to definition看看它是不是有无参数的构造函数。

2. 选中项目中引入的dll,鼠标右键,选择属性,把“嵌入互操作类型”设置为False。

原文地址:https://www.cnblogs.com/coolsundy/p/3833403.html