0
私はCSharpCodeProviderを使用し、必要なシステムライブラリを追加する下記のスクリプトを用意しています。私は、コンパイルされたプログラムにNewtonsoft.Json.dllを含める必要がある状況に遭遇しました。残念ながら、DLLはbinフォルダにあるにもかかわらず、私はすべてのアイデアは、私と同じ問題を抱えていることが他の人のために役立つだろうCompilerParameters add Newtonsoft
Error (CS0006) Newtonsoft.Json.dll could not be found
を取得します。
string code = Encoding.UTF8.GetString(Convert.FromBase64String(Code.code));
CSharpCodeProvider provider = new CSharpCodeProvider();
CompilerParameters parameters = new CompilerParameters();
parameters.GenerateInMemory = true;
parameters.GenerateExecutable = false;
parameters.ReferencedAssemblies.Add("System.Net.Http.dll");
parameters.ReferencedAssemblies.Add("Newtonsoft.Json.dll");
CompilerResults results = provider.CompileAssemblyFromSource(parameters, code);
if (results.Errors.HasErrors)
{
StringBuilder sb = new StringBuilder();
foreach (CompilerError error in results.Errors)
{
sb.AppendLine(String.Format("Error ({0}): {1}", error.ErrorNumber, error.ErrorText));
}
string badResult = sb.ToString();
return badResult;
}
回答ありがとうございます。これはうまくいくようです。 AzureにWeb APIとしてデプロイされているので、これをテストして検証することはできません。 – Kyle
その代わりに相対パスを渡すのはどうですか? – JuanR