2011-08-11 4 views
5

My WCFアプリケーションは、実行時にコンパイルされたコードを使用してレポートの一部の値を計算します。私はCSharpCodeProvider.CompileAssemblyFromSourceを使用してコードをコンパイルしています。 クライアント(Silverlightアプリケーション)が別のレポートの計算中にレポートを要求した場合、CSharpCodeProvider.CompileAssemblyFromSourceは重複した名前の一時ファイルを生成し、IOException(「ファイル 'C:\ Windows \ TEMP \ uviewdyd.out'すでに存在しています。 ")CompileAssemblyFromSourceが重複ファイル名を持つ一時ファイルを生成しないようにする

これを防ぐ方法は誰か知っていますか?

+0

これは私も同様の問題を抱えているようです。何か解決策はありますか? – Jemsworld

答えて

0

あるとは思いません。 3つのバリアント(ファイル、DOM、ソース)がすべて一時ファイル(source)を作成するようです。
最良の方法は、コンパイルごとに異なる一時パスを使用するようです。 https://stackoverflow.com/a/37136996/5682035を参照してください:

CSharpCodeProvider prov = new CSharpCodeProvider(); 
CompilerParameters parms = new CompilerParameters(); 
parms.TempFiles = new TempFileCollection(tempdir); 
関連する問題