从 C# 脚本引用本地 csproj

RAn*_*son 5 c# csx .net-core

我一直在尝试使用 C# 脚本 (*.csx) 对某些内部 API 的服务调用结果进行一些数据处理。到目前为止,它非常顺利,但我现在试图从我有权访问的 C# 项目中调用一些方法。C# 项目没有发布的 nuget 包,这意味着直接使用#r. 但是,为了访问必要的功能,我发现我还需要为任何项目依赖项和依赖项使用的任何 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;
Run Code Online (Sandbox Code Playgroud)

我是 C# 脚本世界的新手,没有找到任何直接解决这个问题的内容,所以希望我不会在这里问一些非常明显的问题。

有些项目依赖于相当多的 nuget 包,有没有办法从 C# 脚本中引用 csproj,而不需要显式引用项目的所有依赖项?

如果我可以提供任何其他信息,请告诉我。

Bar*_*r J 2

请注意Microsoft Docs 中的Essential .NET - C# 脚本:

\n\n
\n

您可以将整个列表保存为 CSX 文件,然后\n \xe2\x80\x9cimport\xe2\x80\x9d 或 \xe2\x80\x9cinline\xe2\x80\x9d 将文件导入到 C# REPL 窗口中#load\n Spell.csx。#load 指令允许您包含其他脚本\n 文件,就好像所有 #load 文件都包含在同一个 \xe2\x80\x9cproject\xe2\x80\x9d 或\n \xe2\x80\x9ccompilation 中。\xe2\ x80\x9d 将代码放入单独的 C# 脚本文件中可实现某种类型的文件重构,更重要的是,能够随着时间的推移保留 C# 脚本。

\n
\n\n

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

\n\n

例如:

\n\n
//Load scripts\n#load "Script.csx"  \nusing Project;\n
Run Code Online (Sandbox Code Playgroud)\n

  • 我见过加载命令,但我没有想到这一点。它工作得很好,但不幸的是它仍然需要列出项目 dll 所需的所有 nuget 依赖项。它更加干净并且也非常易于维护。谢谢您的帮助! (2认同)