我有很多项目,但没有一个包含所有内容的主解决方案。我想要这样一个解决方案是为了重构。
因此,我想知道是否有自动构建解决方案文件的方法。手动添加所有项目是不可行的。
我有很多项目,但没有一个包含所有内容的主解决方案。我想要这样一个解决方案是为了重构。
因此,我想知道是否有自动构建解决方案文件的方法。手动添加所有项目是不可行的。
dotnet sln
命令将项目添加到现有解决方案中,使用 dotnet new sln
来创建一个新的解决方案。dotnet new sln
Get-ChildItem -Recurse *.csproj | ForEach { dotnet sln add $_.FullName }
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
GenerateSolutionFile.exe
用法:GenerateSolutionFile /p /s [/i includeFilter] [/e excludeFilter]
该博客已被删除,其中包含有代码的zip文件: https://web.archive.org/web/20090810131702/http://bloggingabout.net/blogs/vagif/archive/2009/08/04/utility-to-generate-visual-studio-solution-file-for-a-group-of-projects.aspx
看起来作者在这里上传了该工具的msi版本: https://marketplace.visualstudio.com/items?itemName=VagifAbilov.SolutionMaker
据我所知,Microsoft slngen可能是更好的解决方案,因为它是MIT许可的源代码,并且是一个活跃的项目。 https://github.com/microsoft/slngen
看起来在2017年,微软又建立了另一个生成解决方案的工具:https://github.com/microsoft/slngen - 这个项目似乎正在积极维护。
我已经使用文本操作编程方式创建了.vcproj文件的解决方案文件(但cs/vb同样适用)。如果您在记事本或其他编辑器中打开解决方案文件,那么弄清楚如何做并不是很难。
不幸的是,由于代码是专有的,我无法提供它。
看看nAnt,它是Ant的.NET端口。它具有执行此类操作或在没有此类操作的情况下构建的能力。