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

时间:2009-10-09 08:10:46

标签: c# powershell snap-in pssnapin

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

解决方案(根据我的问题的评论之一在此处发布)

我的问题非常具体,因为我正在使用64位服务器计算机进行开发,但我发布了解决方案,以防它可以帮助其他人。

按照建议使用fuslogvw,我看到使用machine.config下的C:\Windows\Microsoft.NET\Framework64文件搜索依赖程序集,然后绑定失败;使用“无需调试启动”启动项目,而machine.config下的C:\Windows\Microsoft.NET\Framework文件已被采用(注意到最后缺少的64)。

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