【问题标题】:Add referenced projects into solution automatically自动将引用的项目添加到解决方案中
【发布时间】:2015-01-18 12:16:52
【问题描述】:

我的情况:

  • 我有一个包含数百个项目的解决方案 A
  • 有些项目是类库,被其他项目引用。

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

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

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

编辑:

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

【问题讨论】:

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


    【解决方案1】:

    复制粘贴您当前的解决方案文件并从它开始。在新的 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
    

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

    【讨论】:

    • 在我的情况下,这将导致几乎相同的努力,但还是谢谢你。如果真的没有这样的功能,我会接受。
    【解决方案2】:

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

    1. 在“文件”菜单上,单击“导出模板”。导出模板向导随即打开。
    2. 选择项目模板并在向导中移动
    3. 单击完成。您的项目将导出为 .zip 文件并放置在指定的输出位置,如果选中,则导入 Visual Studio。
    4. 现在,当您为解决方案 B 设置新项目时。您将能够从 A 中选择项目模板,并保留所有文件结构/引用。

    参考:http://msdn.microsoft.com/en-us/library/vstudio/xkh1wxd8%28v=vs.100%29.aspx

    【讨论】:

    • 感谢您的建议,请查看我更新的问题,我希望它现在清楚地解释了为什么此解决方案不适合我。
    • @MichalHosala 听起来你想要的是一个项目模板。在 Visual Studio 中,单击要用作模板的解决方案 A 中的项目,然后在菜单中单击文件-> 导出模板。您必须清除现有代码,但引用将很容易移动。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    相关资源
    最近更新 更多