5

我们有一个 VS2008 解决方案文件,其中包含大约 80 个项目(是的,我知道它很烂)。

这些项目排列在各种文件夹中,有些可能依赖于顶级“Libs”文件夹中的其他第 3 方 DLL。

我们想将其重构为几个较小的 .sln 文件,每个文件都包含合理数量的项目。

问题是,当移动项目文件时,存储在其中的相对路径会中断,因此我们将不得不进行大量手动“修补”来修复它。

是否有任何工具或任何经过验证的技术可以做这样的事情?

4

1 回答 1

1

我们做了类似的事情,为了修复引用,我们编写了一个快速实用程序来解析 .csproj 或 .vbproj 文件(基本上是 xml 文件)并根据 .proj 文件本身在重构。这比手动更改项目 xml 或添加删除引用以避免人为错误要好。

一旦您知道 proj 文件在哪里以及公共文件(或其他文件)将在哪里,您就可以使用相对路径修改项目文件中的 Reference 节点。因此,例如,您可能必须更改原始文件

<Reference Include="NHibernate">
      <HintPath>..\..\ServicesShared\Library\NHibernate.dll</HintPath>
</Reference> 

在 .proj 文件中

<Reference Include="NHibernate">
      <HintPath>..\Common\ServicesShared\Library\NHibernate.dll</HintPath>
</Reference> 

如果那是 NHibernate.dll 现在所在的位置。

希望这对你们有用。

于 2012-07-20T16:45:11.987 回答