C#:如何在手动编译之前以编程方式确定哪些引用丢失?

时间:2013-04-07 10:05:43

标签: c# visual-studio reflection

以下是要求:我想创建一个自定义的visual studio C#项目模板,通过该模板,创建的项目已正确添加所有引用以通过编译。

我遇到的问题是,在这种情况下会丢失一些引用:如果生成的项目包含名为MethodA的DLL中类型AClass的代码调用方法A.dllAClass.MethodA的参数在B.dll中定义。

简而言之,A.dll引用类B.dll中方法MethodA上的AClass,由于缺少B.dll,编译将失败。

任何人都知道如何找到B.dll对编译目的的依赖关系的完美解决方案?

我尝试了Assembly.GetReferencedAssemblies但它会获得所有引用的程序集,其中大部分都是不必要的。

我也尝试使用ReflectionResolve事件,但也无济于事。

2 个答案:

答案 0 :(得分:1)

Resharper像丝绸一样平滑。缺少引用会导致它在源代码窗口中显示错误,甚至建议引用正确的dll。

Resharper还有一个API,如果你想自己编码

答案 1 :(得分:0)

使用Redgate .Net Reflector可能是个不错的选择。虽然它不是免费的,但你可以试用一段时间。

点击分析工具栏按钮,它将为您提供所有dll /程序集依赖项。