diff --git a/src/Nerdbank.GitVersioning.Tasks/build/Nerdbank.GitVersioning.targets b/src/Nerdbank.GitVersioning.Tasks/build/Nerdbank.GitVersioning.targets index 332eff0ac..3394eef5d 100644 --- a/src/Nerdbank.GitVersioning.Tasks/build/Nerdbank.GitVersioning.targets +++ b/src/Nerdbank.GitVersioning.Tasks/build/Nerdbank.GitVersioning.targets @@ -317,25 +317,21 @@ BeforeTargets="GenerateNuspec;_GetPackageFiles" DependsOnTargets="GetBuildVersion"> - <_NBGV_OriginalServerJson Include="$(MSBuildProjectDirectory)\server.json" Condition="Exists('$(MSBuildProjectDirectory)\server.json')" /> + <_NBGV_OriginalServerJson Include="@(None)" Condition="'%(None.FileName)%(None.Extension)'=='server.json'" /> + <_NBGV_StampedServerJson Include="@(_NBGV_OriginalServerJson->'$(IntermediateOutputPath)\nb.gv\server.json')" /> - - - <_NBGV_StampedServerJsonPath>$(IntermediateOutputPath)server.json - - + - + - - - - + + + diff --git a/test/Nerdbank.GitVersioning.Tests/BuildIntegrationManagedTests.cs b/test/Nerdbank.GitVersioning.Tests/BuildIntegrationManagedTests.cs index ad7143876..a1e09626b 100644 --- a/test/Nerdbank.GitVersioning.Tests/BuildIntegrationManagedTests.cs +++ b/test/Nerdbank.GitVersioning.Tests/BuildIntegrationManagedTests.cs @@ -50,7 +50,8 @@ public async Task McpServerJson_VersionStamping() } """; - string serverJsonPath = Path.Combine(this.projectDirectory, "server.json"); + string serverJsonPath = Path.Combine(this.projectDirectory, ".mcp", "server.json"); + Directory.CreateDirectory(Path.Combine(this.projectDirectory, ".mcp")); File.WriteAllText(serverJsonPath, serverJsonContent); // Set PackageType to McpServer @@ -58,6 +59,8 @@ public async Task McpServerJson_VersionStamping() this.testProject.AppendChild(propertyGroup); propertyGroup.AddProperty("PackageType", "McpServer"); + this.testProject.AddItem("None", @".mcp\server.json", new Dictionary { ["Pack"] = "true", ["PackagePath"] = "/.mcp/" }); + this.WriteVersionFile(); BuildResults result = await this.BuildAsync("NBGV_StampMcpServerJson", logVerbosity: LoggerVerbosity.Detailed); @@ -65,7 +68,9 @@ public async Task McpServerJson_VersionStamping() Assert.Empty(result.LoggedEvents.OfType()); // Verify the stamped server.json was created - string stampedServerJsonPath = Path.Combine(this.projectDirectory, result.BuildResult.ProjectStateAfterBuild.GetPropertyValue("IntermediateOutputPath"), "server.json"); + string stampedServerJsonPath = result.BuildResult.ProjectStateAfterBuild.GetItems("None") + .Single(pi => $"{pi.GetMetadataValue("FileName")}{pi.GetMetadataValue("Extension")}" == "server.json") + .GetMetadataValue("FullPath"); Assert.True(File.Exists(stampedServerJsonPath), $"Expected stamped server.json at: {stampedServerJsonPath}"); // Verify the version was correctly stamped