从 csx 脚本引用 NuGet 包

Referring to NuGet packages from csx script

我正在尝试编写一个需要使用 NuGet 包的 C# 交互式脚本 (.csx),但我一定是忽略了一些基本的东西,因为我无法让它工作。

我尝试添加一个引用包的 project.json,当我 nuget restore 时它被安装到全局包目录中,但似乎 #r 指令看起来不那里。我没有找到关于 #r 指令如何工作的相关文档(大多数文档似乎处理类似但不同的名为 ScriptCS 的项目)。

如何编写引用 NuGet 包的 csx 脚本?

This wiki 条目有一条针对交互式 Window 的说明,指出您需要直接引用 NuGet DLL。因此,您可以使用全局包目录中 DLL 的绝对路径。这并不理想,但应该可行。

C# Interactive 无法引用 NuGet 包,但 scriptcs 可以。

Dotnet 脚本支持在 CSX 文件中引用 Nuget 包:

#r "nuget: AutoMapper, 6.1.0"

https://discoverdot.net/projects/dotnet-script#nuget-packages-1

如果您以前使用过 FSharp,解决方案非常简单,但主要
解决方案是:

#r "nuget:Newtonsoft.Json"

上面获取最新的包版本。但是如果你想指定一个版本,这个就可以了。

#r "nuget:Newtonsoft.Json,1.20"

如果您恰好在使用外部 nuget 源,则应使用该源进行初始化。

#i "nuget:http://example.com"

网络资源和

#i "nuget:C:\Nuget"
```for sources on your local file system 

非常简单 来自 Visual studio UI:

  1. 右击项目,点击Manage NuGet Packages

  1. Browse or Installed 选项卡的列表中选择 NuGet 包并单击 nuget.org URL

  1. URL 将转到此网页,转到 Script and Interactive 选项卡,然后只需单击复制按钮并将其粘贴到 Visual studio 或 *.csx 文件中的 CSI 文件