【问题标题】:Can I reference a .NET executable as if it is a DLL in LINQPad 6?我可以像 LINQPad 6 中的 DLL 一样引用 .NET 可执行文件吗?
【发布时间】:2020-06-18 13:43:28
【问题描述】:

在 LINQPad 中,我可以使用 Query Properties > Additional References > Add / Browse 添加对本地 .NET dll 文件的引用。

然后我可以在我的 LINQPad 脚本中导入命名空间和访问 dll 中定义的成员。

我还可以使用相同的方式添加对本地 .NET exe 文件的引用,就像我为普通的 .NET 项目所做的那样。有问题的 exe 被编译为 net472 目标。

当我尝试访问 exe 文件中定义的成员时,我收到此错误

找不到类型或命名空间名称“...”

有没有办法导入和使用在以这种方式编译为 exe 的 .NET 项目中定义的成员?

(我使用的是 LINQPad 6)

【问题讨论】:

  • 如果可执行文件可由 .NET Core 3.1 加载,那么是的,您应该可以这样做。也许 .exe 文件只是加载 .NET Core 并在并行 .dll 文件中执行应用程序的垫片?
  • 有趣!我的exe是net472。我会在问题中添加这个细节。

标签: c# dll linqpad


【解决方案1】:

这是一个很好的问题:LINQPad 6 允许您引用 .NET Framework 程序集(如果它们恰好与 .NET Core 兼容)。

但是,现在它不能将扩展名为 .exe 的文件识别为潜在的 .NET 程序集,而是将它们复制到输出目录而不是尝试引用它们。我会看看这是否容易在下一个版本中修复。

【讨论】:

  • 感谢您的澄清!如果我没记错的话,LINQPad 5 只允许引用 .dll 文件。所以我做了错误的假设,因为我现在可以“引用”一个 .exe,它可能会作为一个 .NET 程序集导入。但实际上这就像我引用任何其他 .gif 或 .xlsx 或...?
猜你喜欢
  • 2023-03-21
  • 1970-01-01
  • 2020-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-06
相关资源
最近更新 更多