代码之家  ›  专栏  ›  技术社区  ›  Paolo Tedesco

从PowerShell管理单元引用外部程序集

  •  1
  • Paolo Tedesco  · 技术社区  · 15 年前

    我正在开发一个自定义的PowerShell管理单元,它引用解决方案中的另一个项目。
    当我尝试调试管理单元时(按照[这些说明][1]),程序集无法加载,并且我的Cmdlet失败,并显示消息“无法加载文件或程序集…”

    如何指示PowerShell如何定位程序集,或者如何指定管理单元所需程序集的位置?

    我宁愿避免在GAC中注册程序集,至少在开发期间是这样。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Chris Ballard    15 年前

    不知道具体的行为,但我会尽量利用 fuslogvw 查看运行时在何处查找有问题的程序集。这将给您一个线索,告诉您如何在构建时将它们复制到正确的位置。 This post 史考特·汉塞尔曼的作品非常有用,而且 this 是官方文件。

    如果您找到了解决方案,请添加一个答案,因为这必须是一个常见的场景。

        2
  •  1
  •   Paolo Tedesco    15 年前

    解决方案(按我问题的一条评论建议在此处发布)

    我的问题相当具体,因为我是在64位服务器上开发的,但是我正在发布解决方案,以防它也能帮助其他人。

    使用 fuslogvw 正如建议的那样,我看到依赖程序集正在使用 machine.config 文件下 C:\Windows\Microsoft.NET\Framework64 然后绑定失败;以“无调试启动”启动项目,而不是 机器配置 文件下 C:\Windows\Microsoft.NET\Framework 被带走了(注意丢失的 64 最后)。

    我认为问题可能是由于图像格式,实际上依赖程序集是以x86作为CPU目标编译的;我将其更改为“any cpu”,现在程序集已正确加载。

    推荐文章