Fix P2P migration
Fixes #4269 by deep cloning the MsbuildTemplateProject for each P2P reference. Add test which migrates and builds P2P references.
This commit is contained in:
parent
09e8877bd4
commit
a396630576
27 changed files with 201 additions and 54 deletions
|
@ -35,6 +35,8 @@ namespace Microsoft.DotNet.ProjectJsonMigration
|
|||
Exception exc = null;
|
||||
IEnumerable<ProjectDependency> projectDependencies = null;
|
||||
|
||||
var tempMSBuildProjectTemplate = rootSettings.MSBuildProjectTemplate.DeepClone();
|
||||
|
||||
try
|
||||
{
|
||||
projectDependencies = ResolveTransitiveClosureProjectDependencies(
|
||||
|
@ -54,7 +56,7 @@ namespace Microsoft.DotNet.ProjectJsonMigration
|
|||
}
|
||||
|
||||
MigrateProject(rootSettings);
|
||||
|
||||
|
||||
if (skipProjectReferences)
|
||||
{
|
||||
return;
|
||||
|
@ -66,7 +68,7 @@ namespace Microsoft.DotNet.ProjectJsonMigration
|
|||
var settings = new MigrationSettings(projectDir,
|
||||
projectDir,
|
||||
rootSettings.SdkPackageVersion,
|
||||
rootSettings.MSBuildProjectTemplate);
|
||||
tempMSBuildProjectTemplate.DeepClone());
|
||||
MigrateProject(settings);
|
||||
}
|
||||
}
|
||||
|
@ -93,7 +95,7 @@ namespace Microsoft.DotNet.ProjectJsonMigration
|
|||
var projectDependencies = _projectDependencyFinder.ResolveProjectDependencies(rootProject, xprojFile);
|
||||
Queue<ProjectDependency> projectsQueue = new Queue<ProjectDependency>(projectDependencies);
|
||||
|
||||
while(projectsQueue.Count() != 0)
|
||||
while (projectsQueue.Count() != 0)
|
||||
{
|
||||
var projectDependency = projectsQueue.Dequeue();
|
||||
|
||||
|
@ -107,7 +109,7 @@ namespace Microsoft.DotNet.ProjectJsonMigration
|
|||
var projectDir = Path.GetDirectoryName(projectDependency.ProjectFilePath);
|
||||
projectDependencies = _projectDependencyFinder.ResolveProjectDependencies(projectDir);
|
||||
|
||||
foreach(var project in projectDependencies)
|
||||
foreach (var project in projectDependencies)
|
||||
{
|
||||
projectsQueue.Enqueue(project);
|
||||
}
|
||||
|
@ -138,7 +140,7 @@ namespace Microsoft.DotNet.ProjectJsonMigration
|
|||
{
|
||||
var projectContexts = ProjectContext.CreateContextForEachFramework(migrationSettings.ProjectDirectory);
|
||||
var xprojFile = migrationSettings.ProjectXProjFilePath ?? _projectDependencyFinder.FindXprojFile(migrationSettings.ProjectDirectory);
|
||||
|
||||
|
||||
ProjectRootElement xproj = null;
|
||||
if (xprojFile != null)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue