c# - 在动态编译器中引用由 NuGet 导入的程序集
问题描述
我有一些 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
大会的最佳方式是什么?
解决方案
推荐阅读
- android - 应用程序中的 Twitter 错误
- angular - 迁移到 6.0 后无法构建 Angular 项目
- c# - 如何检查 SQL Server 数据库 C# winform 中是否存在记录?
- microsoft-cognitive - 为什么必应新闻搜索 API“since”参数什么都不做?
- python - 无法在 64 位版本的 python 3.6.5 中导入 cv2
- ibm-datapower - Datapower 处理所有业务(无后端服务器)
- android - 如何使订单可编辑线性布局?
- javascript - 将文件存储为 html 元素 dropzone.js
- php - 与 MariaDB 服务器建立连接,但无法将数据导入数据库?
- vim - 复制行命令,打开一个新选项卡并粘贴行