これでどこに行けばいいのかよくわかりません。全体的な目的は、ユーザースクリプトを取得し、それを.NET環境内で実行できるようにすることです。私はほとんどのコードを記述していて、自分のアセンブリをロードしようとしない限り、物事は機能します。ただし、ユーザーがシステムの内部に安全にアクセスできるようにするために、プロキシDLLが作成されています。これが問題のようです。
現在、このプロキシDLLには、インターフェイスという1つのものが含まれています。
CompilerParameters options = new CompilerParameters();
options.GenerateExecutable = false;
options.GenerateInMemory = true;
options.ReferencedAssemblies.Add("System.dll");
options.ReferencedAssemblies.Add("ScriptProxy.dll");
Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider();
CompilerResults result = provider.CompileAssemblyFromSource(options, script);
// This line here throws the error:
return result.CompiledAssembly;
上記のコードを実行すると、次のエラーがスローされます。
System.IO.FileNotFoundException:ファイルまたはアセンブリ'file:/// C:\ Users ... \ AppData \ Local \ Temp\scts5w5o.dll'またはその依存関係の1つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。
もちろん、私の最初の考えは、「...そしてscts5w5o.dllとは何ですか?」です。
これはScriptProxy.dll
正しくロードされていませんか、それともScriptProxy.dll自体が一時ファイルのどこかにある依存関係をロードしようとしていますか?それとも完全に違うものですか?
言及する必要があります、私はNUnitテストランナーからこのコードを実行しています。それが違いを生むかどうかはわかりません。