【问题标题】:Referencing external assemblies from PowerShell snap-in从 PowerShell 管理单元引用外部程序集
【发布时间】:2010-12-05 06:38:52
【问题描述】:

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

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

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

【问题讨论】:

  • 酷 - 很高兴解决方案有所帮助 - 这是有用的信息
  • 您可以重新编辑您的问题以仅显示问题吗?然后将您的答案作为系统中的实际答案。可以回答你自己的问题,你知道的。这将是使用 stackoverflow 系统的最佳方式。这样其他人就可以对您的答案进行投票。
  • @halr9000:完成。我认为你在答案中发布解决方案是对的,我不知道投票(人们可以投票这个问题)。

标签: c# powershell snap-in pssnapin


【解决方案1】:

不确定确切的行为,但我会尝试使用fuslogvw 来查看运行时在哪里寻找有问题的程序集。这将为您提供有关如何将它们复制到构建时的正确位置的线索。 Scott Hanselman 的This post 非常有用,this 是官方文档。

如果您找到解决方案,请添加答案,因为这一定是常见情况。

【讨论】:

    【解决方案2】:

    解决方案(根据其中一位 cmet 对我的问题的建议在此处发布)

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

    按照建议使用fuslogvw,我看到正在使用machine.config 文件在C:\Windows\Microsoft.NET\Framework64 下搜索依赖程序集,然后绑定失败;用“start without debugging”启动项目,取而代之的是C:\Windows\Microsoft.NET\Framework下的machine.config文件(注意最后缺少64)。

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

    【讨论】:

      猜你喜欢
      • 2011-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-22
      • 1970-01-01
      • 2014-01-23
      相关资源
      最近更新 更多