gpt4 book ai didi

c# - CSharpCodeProvider : Why is a result of compilation out of context when debugging

转载 作者:太空宇宙 更新时间:2023-11-03 14:31:24 26 4
gpt4 key购买 nike

我有以下用于在运行时编译类的代码片段。

//now compile the runner
var codeProvider = new CSharpCodeProvider(
new Dictionary<string, string>() { { "CompilerVersion", "v3.5" } });

string[] references = new string[]
{
"System.dll", "System.Core.dll", "System.Core.dll"
};
CompilerParameters parameters = new CompilerParameters();

parameters.ReferencedAssemblies.AddRange(references);
parameters.OutputAssembly = "CGRunner";
parameters.GenerateInMemory = true;
parameters.TreatWarningsAsErrors = true;

CompilerResults result = codeProvider.CompileAssemblyFromSource(parameters, template);

每当我单步执行代码来调试单元测试,并尝试查看“result”的值是什么时,我都会收到一个错误,指出名称“result”在当前上下文中不存在。为什么?

最佳答案

您是否在 Release模式下进行调试?这可能发生在未使用变量的优化中。

例如:

public void OptimizedMethod()
{
int x = 5; // In optimized mode it's not possible to watch the variable
}

代码优化在 Release模式下运行时发生,或者在项目属性(在构建选项卡下)中设置“优化代码”时发生

关于c# - CSharpCodeProvider : Why is a result of compilation out of context when debugging,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2480024/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com