1

我有一个用 C# 编写的工具,它曾经可以工作(不是我写的)。它所做的基本上是使用CS-Script运行 C# 脚本。该脚本可以通过使用指令来使用对 DLL 和 EXE(我认为)的引用:

//css_reference library.dll;

我的应用程序,我们称之为 MyApp,被编译成一个 EXE 文件。它还声明了一些旨在帮助脚本执行操作的类型。正如我从我拥有的一个示例脚本中了解到的那样,它曾经可以工作,这是通过在脚本的开头添加一个引用来实现的,如下所示:

//css_reference MyApp.dll;

请注意,我的应用程序不是 DLL,因此文件 MyApp.dll 不存在。我确实有一个 MyApp.exe。

我在想也许 CS-Script 使用了某种机制,将我的 EXE 视为 DLL,这就是它之前工作的原因(当时我没有使用这个工具)但是在调用时CSScript.Load我得到了错误:

Compiler Error CS0006: Metadata file 'MyApp.dll' could not be found

我知道该文件不存在,这应该不足为奇,但我确定这曾经可以工作,所以我想我的 Visual Studio 项目设置可能有问题。我尝试创建这样的 DLL,但由于名称空间相似,它与正在运行的 EXE 发生冲突。我也尝试将指令更改为,//css_reference MyApp.exe;但这也没有用。

我的问题是,如何使用 CS-Script 从脚本中引用正在运行的应用程序 (MyApp.exe) 中包含的类和方法?

4

0 回答 0