Создать файл решения из списка CSProj - PullRequest
11 голосов
/ 05 января 2009

У меня много проектов, и у меня нет мастер-решения со всем этим. Причина, по которой я хочу, - рефакторинг.

Поэтому мне было интересно, знает ли кто-нибудь автоматический способ создания файла решения. Добавление всех проектов вручную просто невозможно.

Ответы [ 7 ]

9 голосов
/ 03 декабря 2009

И я теперь обновил свою утилиту (упомянутую выше) для поддержки создания папок с решениями: http://bloggingabout.net/blogs/vagif/archive/2009/12/03/utility-to-generate-solution-files-can-now-create-solution-folders.aspx

3 голосов
/ 15 октября 2009

Вагиф Абилов написал замечательную утилиту, которая будет генерировать файл решения из файлов проекта. Удивительно, если вы работаете на людей, которые не «верят» в файлы решений. тьфу.

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 голосов
/ 05 января 2009

Вы можете попробовать этот (приведенный ниже код исходит от этого сайта, всех сайтов ..)

Но если это не сработает и для отладки потребуется слишком много времени, я бы посоветовал пойти на боль, добавив их вручную один раз. Просто поставь хорошую музыку и продолжай ... :)

@ 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
1 голос
/ 11 декабря 2018

В 2018 году вы можете использовать команду dotnet sln для добавления проекта в существующее решение и dotnet new sln для создания нового.

Чтобы добавить все проекты из текущей папки, используйте эти команды в PowerShell

dotnet new sln
Get-ChildItem -Recurse *.csproj | ForEach { dotnet sln add $_.FullName }
0 голосов
/ 28 февраля 2009

Я программно использую текстовые манипуляции, созданные файлы решения для файлов .vcproj (но cs / vb будет работать точно так же). Нетрудно понять, как это сделать, если вы откроете файл решения в блокноте или что-то в этом роде.

К сожалению, я не могу предоставить код, поскольку он является собственностью.

0 голосов
/ 05 января 2009

Проверьте, .NET-порт Ant. У него есть возможность делать подобные вещи или строить без него.

0 голосов
/ 05 января 2009

Создать пустое решение, а затем сразу перетащить в него все свои проекты?

...