J'ai le script ci-dessous qui utilise CSharpCodeProvider et ajoute les bibliothèques système nécessaires. Je suis venu dans une situation où j'ai besoin d'inclure le Newtonsoft.Json.dll pour le programme compilé. Malheureusement, même si le dll est dans le dossier bin, je reçoisCompilerParameters add Newtonsoft
Error (CS0006) Newtonsoft.Json.dll could not be found
Toutes les idées seraient utiles pour moi et d'autres qui peuvent avoir le même problème.
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;
}
Merci pour la réponse, cela sonne comme il pourrait être avec succès. Bien que je ne puisse pas tester et vérifier cela car il est déployé dans Azure en tant qu'API Web. – Kyle
Que diriez-vous de passer un chemin relatif à la place alors? – JuanR