如何查找和删除项目中未使用的引用?
我知道您可以轻松删除vs 2008中的using语句,但这并不会删除项目中的实际引用.引用的dll仍将复制到bin/setup包中.
*注意:请参阅http://www.jetbrains.net/devnet/message/5244658以获取此答案的其他版本.
通过阅读帖子,看起来对原始问题存在一些混淆.让我来试试吧.
原帖实际上是在问这样一个问题:"我如何识别和删除一个Visual Studio项目中的引用到其他未使用的项目/程序集?" 海报希望程序集不再作为构建输出的一部分出现.
在这种情况下,ReSharper可以帮助您识别它们,但您必须自己删除它们.
要执行此操作,请在解决方案浏览器中打开引用,在每个引用的程序集上单击鼠标右键,然后选择"查找从属代码".看到:
http://www.jetbrains.com/resharper/features/navigation_search.html#Find_ReferencedDependent_Code
你会得到:
浏览器窗口中该Reference的依赖项列表,或
一个对话框告诉您"找不到代码依赖于模块XXXXXXX.".
如果得到第二个结果,则可以右键单击"参考",选择"删除",然后将其从项目中删除.
虽然你必须"手动",即一次一个参考,它将完成工作.如果有人以某种方式将其自动化,我有兴趣听听它是如何完成的.
您几乎可以忽略.Net Framework中的那些,因为它们通常不会被复制到您的构建输出(通常 - 虽然对于Silverlight应用程序不一定如此).
有些帖子似乎在回答这个问题:"如何从源代码文件中删除使用不需要解析该文件中任何引用的子句(C#)".
在这种情况下,ReSharper在以下几个方面提供帮助:
在飞行错误检测期间为您标识未使用的使用子句.它们显示为代码检查警告 - 代码将在文件中显示为灰色(默认),ReSharper将提供删除它的提示:
http://www.jetbrains.com/resharper/features/code_analysis.html#On-the-fly_Error_Detection
允许您在代码清理过程中自动删除它们:
http://www.jetbrains.com/resharper/features/code_formatting.html#Optimizing_Namespace_Import_Directives
最后,了解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
如果您也喜欢这个功能,那么您可以投票给我的建议.
试试这个:参考助手
摘要
Reference Assistant有助于从Visual Studio 2010中的C#,F#,VB.NET或VC++/CLI项目中删除未使用的引用.