Skip to content

Commit 2b9853a

Browse files
committed
Use and preserve server.json wherever it is found
1 parent 36498c7 commit 2b9853a

File tree

2 files changed

+16
-15
lines changed

2 files changed

+16
-15
lines changed

src/Nerdbank.GitVersioning.Tasks/build/Nerdbank.GitVersioning.targets

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -317,25 +317,21 @@
317317
BeforeTargets="GenerateNuspec;_GetPackageFiles"
318318
DependsOnTargets="GetBuildVersion">
319319
<ItemGroup>
320-
<_NBGV_OriginalServerJson Include="$(MSBuildProjectDirectory)\server.json" Condition="Exists('$(MSBuildProjectDirectory)\server.json')" />
320+
<_NBGV_OriginalServerJson Include="@(None)" Condition="'%(None.FileName)%(None.Extension)'=='server.json'" />
321+
<_NBGV_StampedServerJson Include="@(_NBGV_OriginalServerJson->'$(IntermediateOutputPath)\nb.gv\server.json')" />
321322
</ItemGroup>
322-
323-
<PropertyGroup>
324-
<_NBGV_StampedServerJsonPath>$(IntermediateOutputPath)server.json</_NBGV_StampedServerJsonPath>
325-
</PropertyGroup>
326-
323+
327324
<!-- Transform server.json with versioned content -->
328325
<Nerdbank.GitVersioning.Tasks.StampMcpServerJson
329326
Condition="'@(_NBGV_OriginalServerJson)' != ''"
330-
SourceServerJson="%(_NBGV_OriginalServerJson.Identity)"
331-
OutputServerJson="$(_NBGV_StampedServerJsonPath)"
327+
SourceServerJson="@(_NBGV_OriginalServerJson)"
328+
OutputServerJson="@(_NBGV_StampedServerJson)"
332329
Version="$(Version)" />
333-
330+
334331
<!-- Remove original server.json from packaging and add stamped version -->
335-
<ItemGroup Condition="'$(_NBGV_StampedServerJsonPath)' != ''">
336-
<Content Remove="server.json" />
337-
<None Remove="server.json" />
338-
<Content Include="$(_NBGV_StampedServerJsonPath)" PackagePath="server.json" Pack="true" />
332+
<ItemGroup>
333+
<None Remove="@(_NBGV_OriginalServerJson)" />
334+
<None Include="@(_NBGV_StampedServerJson)" />
339335
</ItemGroup>
340336
</Target>
341337

test/Nerdbank.GitVersioning.Tests/BuildIntegrationManagedTests.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,22 +50,27 @@ public async Task McpServerJson_VersionStamping()
5050
}
5151
""";
5252

53-
string serverJsonPath = Path.Combine(this.projectDirectory, "server.json");
53+
string serverJsonPath = Path.Combine(this.projectDirectory, ".mcp", "server.json");
54+
Directory.CreateDirectory(Path.Combine(this.projectDirectory, ".mcp"));
5455
File.WriteAllText(serverJsonPath, serverJsonContent);
5556

5657
// Set PackageType to McpServer
5758
ProjectPropertyGroupElement propertyGroup = this.testProject.CreatePropertyGroupElement();
5859
this.testProject.AppendChild(propertyGroup);
5960
propertyGroup.AddProperty("PackageType", "McpServer");
6061

62+
this.testProject.AddItem("None", @".mcp\server.json", new Dictionary<string, string> { ["Pack"] = "true", ["PackagePath"] = "/.mcp/" });
63+
6164
this.WriteVersionFile();
6265
BuildResults result = await this.BuildAsync("NBGV_StampMcpServerJson", logVerbosity: LoggerVerbosity.Detailed);
6366

6467
// Verify the build succeeded
6568
Assert.Empty(result.LoggedEvents.OfType<BuildErrorEventArgs>());
6669

6770
// Verify the stamped server.json was created
68-
string stampedServerJsonPath = Path.Combine(this.projectDirectory, result.BuildResult.ProjectStateAfterBuild.GetPropertyValue("IntermediateOutputPath"), "server.json");
71+
string stampedServerJsonPath = result.BuildResult.ProjectStateAfterBuild.GetItems("None")
72+
.Single(pi => $"{pi.GetMetadataValue("FileName")}{pi.GetMetadataValue("Extension")}" == "server.json")
73+
.GetMetadataValue("FullPath");
6974
Assert.True(File.Exists(stampedServerJsonPath), $"Expected stamped server.json at: {stampedServerJsonPath}");
7075

7176
// Verify the version was correctly stamped

0 commit comments

Comments
 (0)