【问题标题】:Linqpad Query Needs Unmanaged Deployment ItemLinqpad 查询需要非托管部署项
【发布时间】:2012-07-20 15:32:55
【问题描述】:

如何在运行 Linqpad 查询时包含非托管程序集?

我正在运行最新的测试版 (v4.42.06)。我通过 f4 Query 属性添加了对工作托管程序集的引用。我在 Linqpad 中输入了访问该程序集的类和方法的代码,当我点击运行时,我得到一个内部异常(来自我的托管程序集而不是 Linqpad),指出它无法打开(在这种情况下确实找到)依赖于 非托管程序集,通常与目录中的托管程序集一起驻留。

现在非托管程序集与我让 Linqpad 浏览到的添加的托管程序集一起存在,我可以以相同的方式 (f4) 添加非托管程序集,但它不会影响进程的结果。

当我在 Visual Studio 中对该模块进行单元测试时,我将属性 DeploymentItem 附加到单元测试方法并能够执行代码。

如何让 Linqpad 使用非托管程序集部署项执行?

【问题讨论】:

  • 如果您将“不要隐藏程序集引用”设置为 true(在编辑/首选项/高级中),它是否有效?
  • @sgmoore 结束这个问题...把它作为答案输入,我会将其标记为答案。

标签: unmanaged linqpad deploymentitem


【解决方案1】:

'Do not shadow assembly references'设置为true(在Edit/Preferences/Advanced中)

阴影意味着 dll 被复制到另一个文件夹并从那里加载。但是每个 dll 都被复制到一个单独的文件夹中,这意味着托管 dll 不再与非托管 dll 位于同一文件夹中,因此它们无法找到彼此。

通过设置不隐藏程序集引用的选项,DLL 将从其原始位置加载。

【讨论】:

    猜你喜欢
    • 2018-10-25
    • 2018-07-01
    • 1970-01-01
    • 2013-12-29
    • 2022-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    相关资源
    最近更新 更多