나는 C# 소스 파일을 동적으로로드하고 플러그인으로 실행하는 응용 프로그램이 있습니다. 디버그 모드에서 메인 애플리케이션을 실행할 때 동적 어셈블리로 디버그 할 수 있습니까? 소스가 원래 프로젝트의 일부가 아니기 때문에 명확하게 중단 점을 설정하는 것은 문제가되지만 코드에 대한 예외를 밟을 수 있어야합니까?코딩 된 컴파일 된 코드에서 디버그/중단하는 방법
이 코드 또는 뭔가에 대한 PDB를 생성하는 코드 꼴을 얻을 수있는 방법이 있습니까?
다음은 동적 합병증에 사용하는 코드입니다.
CSharpCodeProvider codeProvider = new CSharpCodeProvider(new Dictionary<string, string>() { { "CompilerVersion", "v3.5" } });
//codeProvider.
ICodeCompiler icc = codeProvider.CreateCompiler();
CompilerParameters parameters = new CompilerParameters();
parameters.GenerateExecutable = false;
parameters.GenerateInMemory = true;
parameters.CompilerOptions = string.Format("/lib:\"{0}\"", Application.StartupPath);
parameters.ReferencedAssemblies.Add("System.dll");
parameters.ReferencedAssemblies.Add("System.Core.dll");
CompilerResults results = icc.CompileAssemblyFromSource(parameters, Source);
DLL.CreateInstance(t.FullName, false, BindingFlags.Default, null, new object[] { engine }, null, null);
호기심에서 벗어난 (SystemDiagnostics.Debugger.Break()를 넣으 려한다면 어떻게 될까요?) 코드 어딘가에? 그걸 밟으시겠습니까? – BFree
이 작업이 가능하지만 허용 된 답변의 옵션 만 사용하십시오. –
나는 실수로이 질문을 반복했다. (코드 롬은 내가 찾던 핵심이 아니었다.) http://stackoverflow.com/questions/1593920/debugging-a-generated-net-assembly-from-within-the-application-that-generated-it/1594910#1594910. 인터페이스가 포함 된 솔루션을 추가했습니다. 희망이 도움이 ... – jdehaan