Abe*_*bel 21 c# debugging assembly-resolution visual-studio-2008
完整错误如下:
类型'System.Windows.Forms.Control'在未引用的程序集中定义.您必须添加对程序集'System.Windows.Forms,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的引用.
它指向库项目中第一个类中的第一个语句(Debug.Assert行),它不需要System.Windows.Forms(或者我认为).我知道如何解决它:添加提到的参考.但是,我如何找出导致此错误的库,或者更好的是,使用WinForms库触发了哪些代码?
通常,您可以添加引用其他库的库,但只需在实际使用时添加对其他库的引用.
使用Microsoft框架工具中的绑定日志查看器Fuslogvw.exe也可以解决此问题或类似问题.它显示了应用程序绑定的程序集的所有尝试和成功.
Chr*_*ris 30
我怀疑你的代码没有引起这种情况,因为你说你没有使用System.Windows.Forms类型,编译器错误并没有指向代码的(有用)行.
我认为正在发生的是你引用的库有一个公开可见的方法或属性,它返回一个System.Windows.Forms.Control或者将一个作为参数.无论你是否真的最终调用该方法/属性,它的公开可见意味着你自己的代码必须能够解析库正在使用的所有类型.如果库内部仅使用System.Windows.Forms ,则不会遇到此问题.
它还意味着只是查看你所依赖的程序集的依赖关系可能只是缩小了嫌疑人列表的范围,因为可能有一些程序集在内部依赖System.Windows.Forms(没问题)和一个故障排除程序集具有SWForms程序集中类型的公共参数/返回值.
我的建议是你只是在没有引用SWForms的情况下设置一个空项目,然后依次添加每个依赖项并尝试在每个项目之后进行编译.