2011-08-11 2 views
5

내 WCF 응용 프로그램은 런타임에 컴파일 된 코드를 사용하여 보고서의 일부 값을 계산합니다. CSharpCodeProvider.CompileAssemblyFromSource를 사용하여 코드를 컴파일하고 있습니다. 다른 보고서를 계산하는 동안 클라이언트 (Silverlight 응용 프로그램)가 보고서를 요청하면 CSharpCodeProvider.CompileAssemblyFromSource는 중복 된 이름을 가진 임시 파일을 생성하고 IOException을 발생시키는 원인 ("파일 'C : \ Windows \ TEMP \ uviewdyd.out' 이미 존재합니다. ")CompileAssemblyFromSource가 중복 파일 이름을 사용하여 임시 파일을 생성하지 못하도록합니다.

누구든지이를 방지하는 방법을 알고 있습니까?

+0

이것은 매우 오래된 질문 인 것 같습니다. 비슷한 문제가 있습니다. 어떤 해결책있어? – Jemsworld

답변

0

나는 없을 것이라고 생각합니다. 세 가지 변종 (파일, DOM 및 소스) 모두 임시 파일 (source)을 만드는 것처럼 보입니다.
가장 좋은 방법은 각 컴파일마다 다른 임시 경로를 사용하는 것입니다. https://stackoverflow.com/a/37136996/5682035을 참조하십시오 :

CSharpCodeProvider prov = new CSharpCodeProvider(); 
CompilerParameters parms = new CompilerParameters(); 
parms.TempFiles = new TempFileCollection(tempdir); 
관련 문제