2009-09-30 2 views
6

런타임시 C# 코드를 컴파일하는 시스템이 있습니다. 생성 된 어셈블리를 시스템 자체에 연결하고 싶습니다. 여기 내가 사용하고 몇 가지 예제 코드는 다음과 같습니다런타임에 C# 코드 확장을 컴파일하십시오.

내가 뭘하고 싶은 것은 새로 컴파일 된 확장 컴파일러 프로그램에서 라이브러리 루틴을 사용할 수 있도록,뿐만 아니라 주요 컴파일러 프로그램에 대한 참조를 추가도
CSharpCodeProvider provider = new CSharpCodeProvider(new Dictionary<String, String> { { "CompilerVersion", "v3.5" } }); 
CompilerParameters compilerparams = new CompilerParameters(); 
compilerparams.GenerateExecutable = false; 
compilerparams.GenerateInMemory = true; 
foreach (string name in linkedreferences) 
    compilerparams.ReferencedAssemblies.Add(name + ".dll"); 
Assembly result = provider.CompileAssemblyFromFile(compilerparams, filename); 

.

Assembly entryasm = Assembly.GetEntryAssembly(); 

그럼 궁금한 점은 : 컴파일 된 어셈블리 결과에서 entryasm에 대한 참조를 어떻게 추가합니까?

답변

3

시도해 보셨습니까?

compilerparams.ReferencedAssemblies.Add(entryasm.Location); 
+0

정확히 그랬습니다! 감사. – Whiteknight

관련 문제