如何合并两个不同的Visual Studio解决方案?

44
我有两个Visual Studio 2005解决方案,其中一个生成一个二进制文件及其所有依赖项,另一个生成Web应用程序、一些实用程序和它们的安装程序。到目前为止,我们已经将上述二进制文件作为静态文件包含在安装程序中;我想从该二进制文件的解决方案中获取所有项目,使它们成为安装程序解决方案的一部分,以便一次性构建所有内容。
据我所知,如果我添加来自二进制文件解决方案的现有项目,则会失去依赖项信息。这样做是可行的,但由于涉及20多个项目,我希望在移动项目时保留依赖项信息。看起来我可能只能在解决方案XML中使用文本编辑器完成这个任务...有更好的方法吗?
请注意,这与有关合并同一解决方案文件两个版本的相关问题不同。

1
如果您的安装程序只有一个或两个项目,您可以考虑将这些项目添加到二进制解决方案中。 - dirkgently
4个回答

93

Visual Studio内置了一种方法来完成此操作。右键单击解决方案,然后选择添加 -> 现有项目。从那里选择其他解决方案。


18
谢谢,这正是我在寻找的。我没有想到这会有效,因为它被称为“现有项目”,并且不显示解决方案文件,但你只需要将“文件类型”字段从“所有项目文件”更改为“解决方案文件”。 - UltraNurd
如果要添加的项目与当前打开的项目名称相同,有什么解决方法吗? - Aditya
1
@Aditya,也许你可以编辑 .SLN 文件并全局替换每个项目名称为不同(且唯一)的名称,但你必须将磁盘上的项目文件重命名以匹配。 - Francis Litterio
2
对我来说,“解决方案文件”不在文件类型筛选器中。因此,我只需要在文件名文本框中输入*.sln,然后它就会为我显示文件。 - stuzor
这非常棒。除了项目之外,解决方案文件夹结构也为我导入了。和@stuzor一样,我不得不在文件名文本框中输入*.sln。 - afruzan

3

还可以在Github上找到 https://github.com/MarkKharitonov/merge-solutions - yzorg

0
你可能要考虑使用引用来替代依赖项。这些引用存储在项目文件中,因此跨解决方案会被保留。也许有一些情况需要用到依赖项而不是引用,但我不知道有什么情况需要使用依赖项,对于简单的使用来说,引用已经足够了。

-2

尝试在树中选择所有项目节点,然后将它们拖放到另一个解决方案中。


这是我尝试的第一件事,它只给了我一个带斜线圆圈的无法拖动的光标。 - UltraNurd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接