自动将引用项目添加到解决方案

时间:2014-11-20 15:12:16

标签: c# .net visual-studio visual-studio-2012 resharper

我的情况:

  • 我有一个解决方案 A ,有数百个项目,
  • 有些项目是类库,可以从其他项目中引用。

现在我想创建一个新的解决方案 B ,它将包含解决方案 A 项目的子集。我首先将第一个预先存在的项目添加到这个新的解决方案 B 中。该项目引用了解决方案 A 中的几个类库。因此,无法找到这些库是合乎逻辑的,我无法构建。当然,我可以手动将所有引用的项目添加到新的解决方案 B 中,但这需要相当长的时间,考虑到我需要添加的项目总量。

是否有一些内置的Visual Studio功能可以代表我处理这个问题?即我将有机会一次导入所有引用的项目,并且B.sln文件将自动更新。

我也有ReSharper扩展,但我也找不到这样的功能。

修改

关于我想要实现的更多细节。 A.sln 有很多应用程序项目和数百个类库。我想从 A.sln 为一个特定的应用程序项目创建一个新的 B.sln ,并且只添加它直接或间接引用的类库...但是依赖关系可以达到15级深度,因此手动从原始 A.sln 删除项目以创建 B.sln 实际上不适合我,因为我必须仔细考虑我将手动从原始sln文件中删除的每个项目,随后查看csproj文件以查找我感兴趣的应用程序是否通过其直接引用间接依赖于它们。

2 个答案:

答案 0 :(得分:0)

复制粘贴当前的解决方案文件并从中开始。在新的Visual Studio实例中打开它。逐个删除您的项目。而不是添加新项目,删除不必要的项目将更容易。据我所知,Visual Studio中没有这样的功能。

由于项目已经存在,因此删除将更加容易。不要使用Visual Studio删除项目,而是在合适的程序员记事本中打开sln文件。您的项目将添加到sln文件中,如下所示。

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Example.Integration.App1", "..\Example.Integration\Example.Integration.App1\Example.Integration.App1.csproj", "{E3977144-AFBA-451D-894C-1F89AA008041}"
EndProject

如果您的项目具有命名约定,则删除这些行会更容易。

答案 1 :(得分:0)

从我发现的现有项目移植引用的最佳方法是为该项目生成模板。

  1. 在“文件”菜单上,单击“导出模板”。 “导出模板”向导将打开。
  2. 选择项目模板并完成向导
  3. 单击“完成”。您的项目将导出到.zip文件中并放在指定的输出位置,如果选中,则导入到Visual Studio中。
  4. 现在,为解决方案B设置新项目时,您将能够从A中选择项目模板,并保留所有文件结构/引用。
  5. 参考:http://msdn.microsoft.com/en-us/library/vstudio/xkh1wxd8%28v=vs.100%29.aspx