diff --git a/src/Cli/dotnet/commands/dotnet-sln/add/Program.cs b/src/Cli/dotnet/commands/dotnet-sln/add/Program.cs index de524b2893e0..e7c7d39e1291 100644 --- a/src/Cli/dotnet/commands/dotnet-sln/add/Program.cs +++ b/src/Cli/dotnet/commands/dotnet-sln/add/Program.cs @@ -116,7 +116,7 @@ private async Task AddProjectsToSolutionAsync(string solutionFileFullPath, IEnum try { - AddProject(solution, relativePath, projectPath, solutionFolder); + AddProject(solution, relativePath, projectPath, solutionFolder, serializer); } catch (InvalidProjectFileException ex) { @@ -130,7 +130,7 @@ private async Task AddProjectsToSolutionAsync(string solutionFileFullPath, IEnum await serializer.SaveAsync(solutionFileFullPath, solution, cancellationToken); } - private void AddProject(SolutionModel solution, string solutionRelativeProjectPath, string fullPath, SolutionFolderModel? solutionFolder) + private void AddProject(SolutionModel solution, string solutionRelativeProjectPath, string fullPath, SolutionFolderModel? solutionFolder, ISolutionSerializer serializer = null) { // Open project instance to see if it is a valid project ProjectRootElement projectRootElement = ProjectRootElement.Open(fullPath); @@ -153,7 +153,7 @@ private void AddProject(SolutionModel solution, string solutionRelativeProjectPa // Add settings based on existing project instance ProjectInstance projectInstance = new ProjectInstance(projectRootElement); string projectInstanceId = projectInstance.GetProjectId(); - if (!string.IsNullOrEmpty(projectInstanceId)) + if (!string.IsNullOrEmpty(projectInstanceId) && serializer is ISolutionSerializer) { project.Id = new Guid(projectInstanceId); } diff --git a/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnFileAfterAddingLibProj.slnx b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnFileAfterAddingLibProj.slnx index 7fcda19ce217..b8e10870f971 100644 --- a/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnFileAfterAddingLibProj.slnx +++ b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnFileAfterAddingLibProj.slnx @@ -8,5 +8,5 @@ - + diff --git a/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnFileAfterAddingLibProjToEmptySln.slnx b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnFileAfterAddingLibProjToEmptySln.slnx index 0f8bf2b15b63..e3caa7e0055a 100644 --- a/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnFileAfterAddingLibProjToEmptySln.slnx +++ b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnFileAfterAddingLibProjToEmptySln.slnx @@ -4,5 +4,5 @@ - + diff --git a/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnFileAfterAddingNestedProj.slnx b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnFileAfterAddingNestedProj.slnx index 96ecc778b697..d79132291fc5 100644 --- a/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnFileAfterAddingNestedProj.slnx +++ b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnFileAfterAddingNestedProj.slnx @@ -5,7 +5,7 @@ - + diff --git a/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnFileAfterAddingProjectWithInRootOption.slnx b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnFileAfterAddingProjectWithInRootOption.slnx index 5eb44301b7e2..4b18efe59dab 100644 --- a/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnFileAfterAddingProjectWithInRootOption.slnx +++ b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnFileAfterAddingProjectWithInRootOption.slnx @@ -8,5 +8,5 @@ - + diff --git a/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnFileAfterAddingProjectWithSolutionFolderOption.slnx b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnFileAfterAddingProjectWithSolutionFolderOption.slnx index 238f33b90636..72b17f549402 100644 --- a/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnFileAfterAddingProjectWithSolutionFolderOption.slnx +++ b/test/TestAssets/TestProjects/SolutionFilesTemplates/ExpectedSlnFileAfterAddingProjectWithSolutionFolderOption.slnx @@ -5,7 +5,7 @@ - + diff --git a/test/TestAssets/TestProjects/TestAppWithSlnAndProjectConfigs/Results/ExpectedSlnFileAfterAddingProjectWithAdditionalConfigs.slnx b/test/TestAssets/TestProjects/TestAppWithSlnAndProjectConfigs/Results/ExpectedSlnFileAfterAddingProjectWithAdditionalConfigs.slnx index 740e1b4fed5a..339ed04dc998 100644 --- a/test/TestAssets/TestProjects/TestAppWithSlnAndProjectConfigs/Results/ExpectedSlnFileAfterAddingProjectWithAdditionalConfigs.slnx +++ b/test/TestAssets/TestProjects/TestAppWithSlnAndProjectConfigs/Results/ExpectedSlnFileAfterAddingProjectWithAdditionalConfigs.slnx @@ -7,7 +7,7 @@ - + diff --git a/test/TestAssets/TestProjects/TestAppWithSlnAndProjectConfigs/Results/ExpectedSlnFileAfterAddingProjectWithMatchingConfigs.slnx b/test/TestAssets/TestProjects/TestAppWithSlnAndProjectConfigs/Results/ExpectedSlnFileAfterAddingProjectWithMatchingConfigs.slnx index 13d2aa95a9f9..22585769d919 100644 --- a/test/TestAssets/TestProjects/TestAppWithSlnAndProjectConfigs/Results/ExpectedSlnFileAfterAddingProjectWithMatchingConfigs.slnx +++ b/test/TestAssets/TestProjects/TestAppWithSlnAndProjectConfigs/Results/ExpectedSlnFileAfterAddingProjectWithMatchingConfigs.slnx @@ -7,7 +7,7 @@ - + diff --git a/test/TestAssets/TestProjects/TestAppWithSlnAndProjectConfigs/Results/ExpectedSlnFileAfterAddingProjectWithoutMatchingConfigs.slnx b/test/TestAssets/TestProjects/TestAppWithSlnAndProjectConfigs/Results/ExpectedSlnFileAfterAddingProjectWithoutMatchingConfigs.slnx index 48f5fc01aaa2..0a705d1431fb 100644 --- a/test/TestAssets/TestProjects/TestAppWithSlnAndProjectConfigs/Results/ExpectedSlnFileAfterAddingProjectWithoutMatchingConfigs.slnx +++ b/test/TestAssets/TestProjects/TestAppWithSlnAndProjectConfigs/Results/ExpectedSlnFileAfterAddingProjectWithoutMatchingConfigs.slnx @@ -7,7 +7,7 @@ - +