【发布时间】:2016-05-03 05:53:41
【问题描述】:
我有一个我想使用 c# 交互式探索的程序集。该程序集对其他程序集具有依赖性,并且在配置文件中使用了程序集重定向。其他程序集使用来自当前 appdomain 的数据进行设置。 现在这个程序集在不同的上下文(即不是 c# repl)中使用时可以正常工作。
如何在 c# repl 中模拟相同的上下文?
我得到的错误之一是 FileLoadException,因为我猜它没有找到某些程序集的正确版本。
我尝试过的:
使用 AppDomain.SetData 覆盖 AppDomain.CurrentDomain 属性。配置文件、应用程序库等。
在我的 csx 文件中,引用所有程序集。
将所有程序集复制到 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies
是否有关于如何在这种场景下使用 c# interactive 的信息?当我搜索它时,我得到的唯一信息是简单的教程。这甚至可能吗?
【问题讨论】:
-
我没有使用过 c# 交互,但我想您需要将 dll 放入 .NET 将查找它的文件夹中。我认为
c:\windows\system32是它永远会出现的地方之一。您可以通过将 dll 复制到它来测试它。您也可以阅读此问题并尝试他们的答案(有点旧)stackoverflow.com/questions/1594214/c-custom-assembly-directory。您还可以在应用程序中调试和读取 Environment.CurrentDirectory 以查看它在哪个文件夹中运行并将 dll 放入该文件夹中。 -
键入
#r fullpath以引用 DLL。正常的 CLR 搜索规则对依赖项有效,因此您可能必须先引用它们。 -
@HansPassant 我已经使用了完整路径
-
好吧,这对我们没有帮助,举一个常用库的具体示例。我们可以复制的。
-
@HansPassant 在我的情况下,所有库都是专有的,没有通用库。所以我不能举个例子。
标签: c# visual-studio roslyn interactive read-eval-print-loop