【问题标题】:Can I stop Visual Studio from refactoring outside the current project?我可以阻止 Visual Studio 在当前项目之外进行重构吗?
【发布时间】:2010-04-04 03:23:07
【问题描述】:

我在一个类库中工作,并且还有其他与同一解决方案相关的源项目。 我有没有办法阻止 VS 重构工具遍历那些其他项目,而不将它们从解决方案中删除,但保持一切不变?

我问的原因是因为我经常知道其他项目中不存在更改的符号,并且重构需要很长时间才能查看解决方案中的所有项目。特别是如果解决方案中有一个笨拙的网站项目。

【问题讨论】:

    标签: visual-studio refactoring dependencies


    【解决方案1】:

    (评论中空间不足,所以我正在写一个完整的答案......)

    @Dan:我认为潜在的需求很普遍:我们希望重构(以及所有其他计算机操作)立即出现*。每当出现明显的延迟时,我们希望事情能更快,并开始寻找实现这一目标的方法。

    C# 的内置重构速度缓慢的原因之一是我们故意选择正确性而不是性能。我们知道我们的一些用户会很喜欢 TDD,他们将能够检测到自动重构中的错误并从错误中恢复,但许多用户将受制于我们的实施。我们认为,如果您知道我们可能会出现重构错误,您会产生怀疑并停止使用该工具。因此,我们花时间对重构进行详细验证。 (还有其他原因,可以进行快速、可靠的重构,但交付也是一个特性。)

    在这种情况下,@jdk 想告诉 Visual Studio“嘿,别担心这些其他项目,我会接受遗漏重要内容的风险”。恐怕真的没有办法做到这一点。

    您没有说明您使用的是哪个版本的 Visual Studio。我很确定团队一直在不断改进工具的性能,因此您可能需要查看 VS 2010 RC (http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx) 看看情况是否有所好转。

    一些第 3 方重构工具的速度更快。我没有仔细看,但我确信有些人采用简单的性能方法,在某些情况下会犯错误,而另一些则更可靠。谨慎选择。

    *每当有人问我“这够快吗?”我反问“用户会注意到延迟吗?”如果是,那么他们会更快地喜欢它。任何延迟都是令人失望的,就像缺少功能或错误一样。我们的工作是决定何时进行更多更改以及何时发布。

    【讨论】:

      【解决方案2】:

      不使用默认的重构工具,不。您需要创建一个仅包含该一个项目的新解决方案(您只需直接打开 proj 文件即可),在该上下文中执行重命名,然后返回到您原来的多项目解决方案。

      【讨论】:

      • 我“害怕”那个。我希望有一个更易于管理的解决方案。例如,如果 VS 有“重构集”那就太好了。程序员可以将多个选择项目添加到一个集合中,并且可以为任何启动的重构任务选择一个集合。
      • 我认为这是一个非常不寻常的需求。通常,人们关心的是尝试获取所有引用,而不是尝试留下损坏的引用。即使是 Resharper,它可能拥有所有 .NET 开发工具中最好的重构功能,也不支持这种“部分重构”。
      • 顺便说一下,由于您的主要抱怨是速度,您应该尝试使用 Resharper。如果启用完整解决方案解析,它会构建一个非常全面的解决方案范围的符号索引,使其能够非常快速地进行重构,而无需使用 VS Refactor 命令使用的完整搜索。缺点是它是一个相当昂贵的商业插件。
      猜你喜欢
      • 2010-11-26
      • 1970-01-01
      • 2015-02-01
      • 1970-01-01
      • 2020-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-20
      相关资源
      最近更新 更多