は、おそらく私は、ツリーのために森を見ていないのですが、ここにある:RoslynベースのスクリプトでSystem.IO.FileSystemを使用するには?
スクリプトでSystem.IO.FileSystemを使用する方法は?
私はMicrosoft.CodeAnalysisを持つ4.6.1フレームワークに基づいたプロジェクトを持っています。 ScriptingパッケージはNuGetと共にインストールされます。その後、私はSystem.IO.FileSystemの中にいくつかの参照が追加されました。プロジェクトソースファイルにというキーワードを使用してという名前を付けることはできません。スクリプトコードで見つかったときも、私はコンパイルエラーが表示されます。
型または名前空間「ファイルシステム」は、名前空間に存在しません「System.IO」
私はここで何をしないのですか?私はSystem.IO.FileSystem.dllがターゲットフォルダにあることがわかります。私は動的にDLLをロードする方法を知っていますが(Assembly.LoadFile)、私はそれが正しい方法であるとは見ません。編集
:
をここでは、このために使用されるコードのサンプルです:
string ScriptText = text_Result.Text;
try
{
var Script = CSharpScript.Create<string>(ScriptText, options: ScriptOptions.Default.WithReferences("System.IO.FileSystem"));
//Script.Compile();
string Result = Script.RunAsync(null, null).Result.ReturnValue;
text_Result.Text += Environment.NewLine + Result + Environment.NewLine;
}
catch (Exception MyError)
{
text_Result.Text += Environment.NewLine + MyError.Message + Environment.NewLine;
}
エラーは同じです:
(1,17): error CS0234: The type or namespace name 'FileSystem' does not exist in the namespace 'System.IO' (are you missing an assembly reference?)
に発見された私は、コードを使用して、質問を編集しましたそれはあなたの提案に従って使用されます。それでも同じエラー。 –
おそらく参照を解決できません。 'Compile()'から診断をチェックし、 'Assembly'を渡してみてください。 – SLaks
Compile()の戻り値の後、同じエラーが発生しています。ただし、Compile()はRunAsyncのような実行時エラーを生成しません。 –