How to automatically add a huge set of .vcproj fil

2019-08-06 00:35发布

I have a huge set of .vcproj files (~200) stored in different locations. I have a list of these files with full paths. How can i automatically add them to the solution file(.sln) ?

UPD: I'm looking for existing tool/method.

3条回答
爷的心禁止访问
2楼-- · 2019-08-06 00:56

Here's how I'd do it:

  1. Create and save a blank solution to insert the vcproj files into (File->New Project->Other Project Types->Visual Studio Solutions->Blank Solution)

  2. Create a VS macro which adds a project to a solution, saves the solution, and exits. Try the following:

    Public Sub AddProjectAndExit(Optional ByVal vcprojPath As String = "")
        If Not String.IsNullOrEmpty(vcProjPath) Then
            DTE.ExecuteCommand("File.AddExistingProject", vcprojPath)
            DTE.ExecuteCommand("File.SaveAll")
            DTE.ExecuteCommand("File.Exit")
        End If
    End Sub
    
  3. Create a batch script which executes this macro from the Visual Studio command prompt, iterating over each of your .vcproj files. The command for a single execution would be:

    devenv.exe BlankSolution.sln /Command "Macros.MyMacros.Module1.AddProjectAndExit MyProject1.vcproj"
    

Hope that helps!

查看更多
混吃等死
3楼-- · 2019-08-06 00:58

Modify and existing vcwizard.

function CreateCustomProject(strProjectName, strProjectPath)
{
    try
    {
            //This will add the default project to the new solution

            prj = oTarget.AddFromTemplate(strProjTemplate, strProjectPath, strProjectNameWithExt);


            //Create a loop here to loop through the project names
//you want to add to the new solution.
            var prjItem = oTarget.AddFromFile("C:\\YourProjectPath\\YourProject.vcproj", false);


        }
        return prj;
    }
    catch(e)
    {
        throw e;
    }
}
查看更多
成全新的幸福
4楼-- · 2019-08-06 01:07

The .vcproj & .sln files are ascii format, so you could write a macro/script/program to run through your list of projects and insert the proper info into the .sln file. The only additional info you'll need to get about the projects is the project GUID, which can be found in the .vcproj file (assuming your build configurations are the same for each project).

查看更多
登录 后发表回答