从C#脚本引用本地csproj

时间:2018-12-27 15:09:50

标签: c# .net-core csx

我一直在尝试使用C#脚本(* .csx)对某些内部API的服务调用结果进行一些数据处理。到目前为止,一切都非常顺利,但是我现在正尝试从我可以访问的C#项目中调用某些方法。 C#项目没有发布的nuget程序包,这意味着直接使用#r引用dll。但是,为了访问必需的功能,我发现我还需要在脚本顶部添加对项目依赖项和依赖项使用的任何nuget包的引用。

#r "PATH_TO_SOLUTION\Project\bin\Debug\netstandard2.0\binary.dll"
#r "PATH_TO_SOLUTION\ProjectDependency\bin\Debug\netstandard2.0\dependent.dll"
#r "nuget: Some.Dependency, 11.0.2"
#r "nuget: Some.Other.Dependency, 10.0.2"
#r "nuget: Some.Third.Dependency, 9.0.2"
using Project;

我是C#脚本世界的新手,没有找到任何直接解决此问题的方法,因此希望我在这里不提出任何明显的问题。

某些项目依赖于大量的nuget包,是否有一种方法可以从C#脚本中引用csproj,而无需显式引用项目的所有依赖项?

让我知道我是否可以提供其他信息。

1 个答案:

答案 0 :(得分:1)

请注意Microsoft文档上的Essential .NET - C# Scripting

  

您可以获取整个清单并将其保存为CSX文件,然后   使用#load将文件“导入”或“内联”到C#REPL窗口中   Spell.csx。 #load指令允许您包含其他脚本   好像所有#load文件都包含在同一个“项目”中一样,或者   “编译”。将代码放置在单独的C#脚本文件中可实现   文件重构的类型,更重要的是持久性   C#脚本随着时间的推移。

获取所有参考,将其保存为CSX文件并试一下。

例如:

$ bash ~/scr/array/freqarray.sh
880 ==> 1
884 ==> 2
885 ==> 1
889 ==> 3
890 ==> 3

maximum occurences in analog:

889 ==> 3
890 ==> 3

highest value with maximum occurrence:

890