Skip to content

Commit 3817ce2

Browse files
authored
Reset ProjectInstance after build (#255)
1 parent 6f3179c commit 3817ce2

File tree

3 files changed

+23
-0
lines changed

3 files changed

+23
-0
lines changed

src/Microsoft.Build.Utilities.ProjectCreation.UnitTests/BuildTests.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,22 @@ public void CanRestoreAndBuild()
187187
buildOutput.MessageEvents.High.ShouldContain(i => i.Message == "Building...", buildOutput.GetConsoleLog());
188188
}
189189

190+
[Fact]
191+
public void CanRestoreAndBuildMultipleTimes()
192+
{
193+
ProjectCreator projectCreator = ProjectCreator.Templates.SdkCsproj(
194+
path: GetTempFileName(".csproj"),
195+
targetFramework: TargetFramework)
196+
.Save()
197+
.TryBuild(restore: true, "Build", out bool result, out BuildOutput buildOutput);
198+
199+
result.ShouldBeTrue(buildOutput.GetConsoleLog());
200+
201+
projectCreator.TryBuild(out result, out buildOutput);
202+
203+
result.ShouldBeTrue(buildOutput.GetConsoleLog());
204+
}
205+
190206
[Fact]
191207
public void ProjectCollectionLoggersWork()
192208
{

src/Microsoft.Build.Utilities.ProjectCreation/ProjectCreator.Build.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -535,6 +535,8 @@ private void Build(bool restore, string[]? targets, IDictionary<string, string>?
535535
{
536536
targetOutputs = buildResult.ResultsByTarget;
537537
}
538+
539+
ResetProjectInstance();
538540
}
539541

540542
private void Restore(IDictionary<string, string>? globalProperties, BuildOutput buildOutput, out bool result, out IDictionary<string, TargetResult> targetOutputs)

src/Microsoft.Build.Utilities.ProjectCreation/ProjectCreator.Project.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,5 +126,10 @@ public ProjectCreator TryGetProjectInstance(
126126

127127
return this;
128128
}
129+
130+
internal void ResetProjectInstance()
131+
{
132+
_projectInstance = null;
133+
}
129134
}
130135
}

0 commit comments

Comments
 (0)