从CSProj列表生成解决方案文件

时间:2009-01-05 20:00:18

标签: c# visual-studio-2008

我有很多项目,而且我没有掌握所有内容的主解决方案。我想要的原因是重构。

所以我想知道是否有人知道自动构建解决方案文件的方法。手动添加所有项目是不可行的。

7 个答案:

答案 0 :(得分:9)

我现在更新了我的实用程序(如上所述)以支持创建解决方案文件夹: http://bloggingabout.net/blogs/vagif/archive/2009/12/03/utility-to-generate-solution-files-can-now-create-solution-folders.aspx

答案 1 :(得分:3)

Vagif Abilov写了一个很棒的实用程序,它将从项目文件中生成一个解决方案文件。如果您为那些不相信解决方案文件的人工作,那真是太棒了。啊。

GenerateSolutionFile.exe

用法:GenerateSolutionFile / p / s [/ i includeFilter] [/ e excludeFilter]

http://bloggingabout.net/blogs/vagif/archive/2009/08/04/utility-to-generate-visual-studio-solution-file-for-a-group-of-projects.aspx

答案 2 :(得分:2)

您可以尝试this(以下代码来自此网站,所有网站中的代码..)

但如果它不起作用并且调试需要花费太多时间,我建议一次手动添加它们。只要放一些好音乐就可以了...... :)

@oefe我不认为VS.NET允许你将D& D项目转化为解决方案,我曾尝试过一次。

Imports EnvDTE
Imports EnvDTE80
-----------------------------------------------------------------------------------
    Private Shared Sub DoStuff()

        Dim filePath As String = "c:\temp"

        Dim fileName As String = "bld_TestApp.sln"

        Dim fullName As String = Path.Combine(filePath, fileName)

        Dim objType As Type

        Dim objDTE As EnvDTE.DTE

        objType = Type.GetTypeFromProgID("VisualStudio.DTE.8.0")

        objDTE = DirectCast(System.Activator.CreateInstance(objType), EnvDTE.DTE)

        Console.WriteLine(objDTE.Name + ":" + objDTE.Version)


        objDTE.Solution.Create(filePath, fileName)

        objDTE.Solution.AddFromFile("C:\Common.vbproj")

        objDTE.Solution.SaveAs(fullName)


    End Sub

答案 3 :(得分:1)

在2018年,您可以使用dotnet sln命令将项目添加到现有解决方案中,并使用dotnet new sln创建新解决方案。

要从当前文件夹添加所有项目,请在PowerShell中使用以下命令

dotnet new sln
Get-ChildItem -Recurse *.csproj | ForEach { dotnet sln add $_.FullName }

答案 4 :(得分:-2)

查看nAnt,Ant的.NET端口。它有能力做这样的事情,或者在没有它的情况下进行构建。

答案 5 :(得分:-2)

我已经以编程方式使用文本操作为.vcproj文件创建了解决方案文件(但cs / vb的工作原理相同)。如果你在记事本或其他任何地方打开一个解决方案文件,要弄清楚如何去做并不是很难。

不幸的是,我无法提供代码,因为它是专有的。

答案 6 :(得分:-3)

创建一个空解决方案,然后拖动&立即将所有项目放入其中?