如何在项目中查找和删除未使用的引用?
我知道您可以轻松删除vs 2008中的using语句,但这不会删除您项目中的实际引用。引用的dll仍将复制到bin / setup程序包中。
如何在项目中查找和删除未使用的引用?
我知道您可以轻松删除vs 2008中的using语句,但这不会删除您项目中的实际引用。引用的dll仍将复制到bin / setup程序包中。
Answers:
*注意:有关此答案的另一个版本,请参见http://www.jetbrains.net/devnet/message/5244658。
通读帖子,似乎对原始问题有些困惑。让我刺一下它。
原始帖子实际上是在问一个问题:“如何识别和删除一个Visual Studio项目对未使用的其他项目/程序集的引用?” 发布者希望装配件不再出现在构建输出中。
在这种情况下,ReSharper可以帮助您识别它们,但是您必须自己删除它们。
为此,请在解决方案浏览器中打开“引用”,右键单击每个引用的程序集,然后选择“查找相关代码”。看到:
http://www.jetbrains.com/resharper/features/navigation_search.html#Find_ReferencedDependent_Code
您将获得:
在浏览器窗口中对该引用的依赖项列表,或者
出现一个对话框,提示您“找不到依赖于模块XXXXXXX的代码”。
如果获得第二个结果,则可以右键单击“引用”,选择“删除”,然后将其从项目中删除。
虽然您必须“手动”执行此操作,即一次引用一个,但它可以完成工作。如果有人以某种方式使它自动化,我很想听听它是如何完成的。
您几乎可以忽略.Net Framework中的内容,因为它们通常不会被复制到生成输出中(通常-尽管对于Silverlight应用程序不一定是正确的)。
一些帖子似乎正在回答这个问题:“如何从源代码文件中删除使用子句(C#),而该子句不需要解析该文件中的任何引用”。
在这种情况下,ReSharper确实有以下两种帮助:
在进行动态错误检测期间为您标识未使用的using子句。它们显示为“代码检查警告”-代码将在文件中以灰色显示(默认),并且ReSharper将提供提示以将其删除:
http://www.jetbrains.com/resharper/features/code_analysis.html#On-the-fly_Error_Detection
允许您在代码清除过程中自动删除它们:
最后,意识到ReSharper对您的解决方案进行了静态代码分析。因此,如果您具有对程序集的动态引用(例如,通过反射或在运行时动态加载并通过接口访问的程序集),则它将不会使用它。 在您处理项目时,无可替代地理解您的代码库和项目依赖性。我确实发现ReSharper功能非常有用。
您可以使用我编写的“ 删除未使用的引用 ”扩展名:
http://visualstudiogallery.msdn.microsoft.com/9811e528-cfa8-4fe7-9dd1-4021978b5097
删除未使用的引用是Visual Studio 2008已经支持的功能。不幸的是,仅适用于VB .NET项目。
我在Microsoft Connect上也提出了建议,也可以为C#项目获得此功能:
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=510326
如果您也喜欢此功能,那么您可以投票赞成我的建议。
试试这个:参考助手
摘要
参考助手有助于从Visual Studio 2010中的C#,F#,VB.NET或VC ++ / CLI项目中删除未使用的参考。
ReSharper 6.1将包括以下功能:
优化引用:在代码中分析程序集引用及其用法,获取冗余引用列表并删除它们。
删除未使用的引用:快速重构以删除多余的程序集引用。
安全删除程序集引用:如果所有程序集引用都是冗余的,则将删除它们,否则会散布用法,并且只能删除所选列表中的冗余程序集引用。
我在VS 2010 Ultimate Architecture-> Generate Dependency Graph-> By Assembly中完成了此操作,没有扩展,它显示了使用的程序集,并手动删除了未使用的引用。
我有一个免费的答案,该答案适用于任何版本的Visual Studio和任何框架版本。它不会删除未使用的引用,但是会标识它们。
您可以在项目dll上使用Telerik JustDecompile。只需在JustDecompile中打开dll,然后继续References
查看已编译dll中实际使用的内容即可。