首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSharpCodeProvider编译异常

CSharpCodeProvider编译异常
EN

Stack Overflow用户
提问于 2014-03-25 09:25:51
回答 1查看 322关注 0票数 1

我的程序经常编译c#-代码,有时我得到一个类似于“文件名”C:\ ArgumentException --\AppData\Local\Temp\wvpc3m5m.0.cs‘的集合。参数名: fileName“。

下一个是编译器的设置:

代码语言:javascript
复制
public void Init()
{
    this.compilerParameters = new CompilerParameters
    {
        GenerateExecutable = false,
        GenerateInMemory = true
    };
}

汇编:

代码语言:javascript
复制
public CompilerResults Compile(String code)
{
    CompilerResults result = this.codeProvider
        .CompileAssemblyFromSource(this.compilerParameters, code);

    return result;
}

我认为codeProvider写将字符串传递到文件中,有时他尝试写入一个和同一个文件两次。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-25 11:10:32

问题是,所有CSharpCodeProvider的实例都可以每隔一段时间编译一次代码。此代码解决了以下问题:

代码语言:javascript
复制
    private readonly Object lockCompile = new Object();
    public CompilerResults Compile(String code)
    {
        CompilerResults result = null;
        lock (lockCompile)
        {
            using (CSharpCodeProvider codeProvider = new CSharpCodeProvider())
            {
                result = codeProvider
                   .CompileAssemblyFromSource(this.compilerParameters, code);
            }
        }

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

https://stackoverflow.com/questions/22630202

复制
相关文章

相似问题

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