【问题标题】:How to refactor Visual Studio's project layout and match up with VSS projects?如何重构 Visual Studio 的项目布局并与 VSS 项目匹配?
【发布时间】:2012-08-07 03:55:18
【问题描述】:

我正在从 VS2008 升级到 VS2010 并想做一些清理工作。我的主要解决方案在一个平面文件空间中有 20 个左右的项目。但是,项目有一个分组(一些库、一些客户端程序、一些测试程序等),我想以适当的方式重新组织项目的物理磁盘布局。此外,我的源代码控制是 VSS(1),因此我希望保持其文件结构与物理磁盘结构保持一致,并保持整体文件历史记录。

那么有哪些工具可以做到这一点呢?还是我最好将解决方案切割成碎片并在所需位置重新组装?

有一些关于解决方案的最佳布局的 SO 问题,但我所见过的没有一个可以告诉您如何从 A 到 B

How to refactor large projects in visual studio

Project layout on disk in visual studio

例如我想从“A”出发

Solution
  |
  |-Project1
  |-Project2
  |-Project3
  |-Project4

到“B”

Solution
  |
  |-Group1
  |   |
  |   |-Project1
  |   |-Project2
  |
  |-Group2
      |
      |-Project3
      |-Project4

更新 1

我应该提到我尝试了一种显而易见的方法,即为“Group1”和“Group2”创建解决方案文件夹,然后将项目拖到每个文件夹下的新位置。这适用于在 VS2010 中创建项目的逻辑组织,但不会更改项目在磁盘上的物理位置。

更新 2

我尝试从解决方案中删除一个项目,将其物理移动到磁盘上,然后将其添加到解决方案文件夹下。这样就实现了磁盘上的重定位,但是项目记住了它最初在VSS中的位置并与那些文件链接起来,而不是VS2010在VSS中构建一个新的项目结构

更新 3

经过一番思考,我意识到我所要求的更多是在我在 VS2010 中移动项目后如何将 VSS 项目与物理磁盘布局重新对齐。解决这个问题需要修改 VSS 项目布局和 VS2010 项目内部。所以我更新了标签和问题标题。

更新 4 - 我的手动解决方案

好的,所以我制定了一个非常手动的方法来移动东西:

  1. 从 VS2010 中删除项目 解决方案

  2. 将其移至磁盘上的新位置

  3. 从项目中删除所有VSS相关文件

  4. 在文本编辑器中打开项目文件并删除所有与 VSS 相关的条目(所有以“Scc”开头的条目)

  5. 将项目重新添加到解决方案中并重新建立任何项目到项目引用

  6. 将解决方案和项目重新检查到 VSS 并关闭 VS2010

  7. 打开 VSS 并从 VSS 中的新项目位置删除仅代码文件

  8. 在 VSS 中的旧位置共享文件

  9. 从 VSS 中的旧位置删除文件

  10. 删除 VSS 中的旧项目位置

这是最好/唯一的方法吗?

(1) 是的,我知道 - VSS。然而,在我使用它的情况下,它工作得非常好,而且我没有让它出错,虽然我已经探索了其他选项,但我现在不打算改变。所以,请不要告诉我应该如何转移到源代码控制中的下一个最好的东西。如果这还不能解决您的问题,那么如何:我实际上使用了一个当前可用且受到积极支持的商业产品,它使用 VSS 作为后端、版本控制数据存储!

【问题讨论】:

    标签: visual-studio-2010 project visual-sourcesafe solution


    【解决方案1】:

    听起来您已经完成了大部分任务。您可以在文本编辑器中打开 .sln 文件,然后手动更改 .(vs|cs)proj 文件的路径。这应该允许您使用所需的结构。

    【讨论】:

    • Chris - 我曾考虑编辑 sln 文件,但经过几次尝试搞砸了,我放弃了。按照我上面列出的程序对我有用,只花了一个下午就重新安排了我的解决方案。然后再花一点时间来修复我的非托管 c++ 解决方案中使用的所有相对路径!我会给你解决方案,至少花时间给我一个答案。
    • 不确定你会如何搞砸 .sln,除非你的编辑器添加了额外的字符。我几乎每次设置新解决方案时都会这样做,手动更改项目文件的路径,这样我就有了与项目相关的 .sln 文件。我使用 emacs,但相信 notepad++ 也可以。
    猜你喜欢
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    相关资源
    最近更新 更多