У меня есть некоторый код C#, который принимает скрипт, написанный на C#, сам и выполняет скрипт динамически. Я могу использовать встроенные библиотеки, ссылаясь на их сборки, как показано ниже.
CSharpCodeProvider provider = new CSharpCodeProvider();
CompilerParameters cp = new CompilerParameters();
cp.ReferencedAssemblies.Add("System.Data.dll")
cp.ReferencedAssemblies.Add("System.dll");
cp.ReferencedAssemblies.Add("System.Xml.dll");
cp.ReferencedAssemblies.Add("System.Linq.dll");
cp.ReferencedAssemblies.Add("System.Xml.Linq.dll");
cp.ReferencedAssemblies.Add("System.Core.dll");
cp.ReferencedAssemblies.Add("System.Net.Http.dll");
...
options.GenerateExecutable = false;
options.GenerateInMemory = true;
CompilerResults results = provider.CompileAssemblyFromSource(options, "<SCRIPT-SOURCE-HERE>");
Однако при попытке добавить дополнительную библиотеку, которая не является частью. NET Framework, с которым я сталкиваюсь проблемы. Здесь я добавил библиотеку RestSharp
в проект через NuGet
и могу подтвердить, что RestSharp.dll находится в каталоге bin
проекта.
options.ReferencedAssemblies.Add("RestSharp.dll");
Я добавляю это в сценарий, который пытаюсь скомпилировать ...
using RestSharp;
Однако при попытке скомпилировать сценарий, использующий библиотеку RestSharp
, я получаю ошибка ...
Metadata file 'RestSharp.dll' could not be found
Как лучше всего ссылаться на сборку RestSharp
?