我正在开发一个自定义PowerShell管理单元,它引用了解决方案中的另一个项目 当我尝试调试管理单元时(遵循[这些说明] [1]),程序集无法加载,我的cmdlet失败并显示消息“无法加载文件或程序集......”
如何指示PowerShell如何定位程序集,或者如何指定管理单元所需的程序集位置?
我宁愿避免在GAC中注册程序集,至少在开发期间是这样。
答案 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”,现在正确加载程序集。