首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >skype类(Skype4COM)库错误

skype类(Skype4COM)库错误
EN

Stack Overflow用户
提问于 2012-05-11 22:28:24
回答 1查看 733关注 0票数 0

我正在用Skype API (Skype4COM)编写一个程序,并决定进行运行时编译。在我决定在我的编译Skype API库中使用之前,一切都运行得很好。当我尝试这样做的时候,程序告诉我:“元数据文件'c:\Users\Алексей\Dropbox\Skype Bot\Skype Bot\bin\Debug\Skype4COM.dll‘无法打开--’有人试图加载一个格式不正确的程序‘”。我怎么才能修复它?下面是代码:

代码语言:javascript
复制
public delegate object Do();
    protected static string Compile(string str)
    {
        try
        {
            var csc = new CSharpCodeProvider(new Dictionary<string, string> { { "CompilerVersion", "v3.5" } });
            CompilerParameters parameters = new CompilerParameters(new[] { "mscorlib.dll", "System.Core.dll", "System.dll", "SKYPE4COM.dll" }) { GenerateInMemory = true };
            //parameters.LinkedResources.Add("Skype4COM.dll");
            //parameters.EmbeddedResources.Add("SKYPE4COMLib.dll");
            //parameters.ReferencedAssemblies.Add("");

            CodeTypeReferenceExpression csSystemConsoleType = new CodeTypeReferenceExpression("System.Console");

            CompilerResults results = csc.CompileAssemblyFromSource(parameters, str);

            if (results.Errors.Count >= 1) return results.Errors[0].ErrorText;

            Type t = results.CompiledAssembly.GetType("Program");
            MethodInfo m = t.GetMethod("Method");

            Do DoMethod;
            DoMethod = (Do)Delegate.CreateDelegate(typeof(Do), m);
            return DoMethod().ToString();
        }
        catch (Exception e)
        {
            return e.Message;
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-11 22:35:50

首先要确保你的dll是registered的。

如果您创建一个测试项目并将COM引用添加到Skype4COM.dll,则Visual Studio将创建一个interop程序集Interop.Skype4COM.dll。您必须添加对该文件的引用(例如,与添加对System.Core.dll的引用的方式相同)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10553327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档