diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.GenerateAssemblyInfo.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.GenerateAssemblyInfo.targets index 73a9d49109d4..4bd03057d27e 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.GenerateAssemblyInfo.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.GenerateAssemblyInfo.targets @@ -96,6 +96,11 @@ Copyright (c) .NET Foundation. All rights reserved. <_Parameter1>$(AssemblyVersion) + + <_Parameter1>RepositoryUrl + <_Parameter2 Condition="'$(RepositoryUrl)' != ''">$(RepositoryUrl) + <_Parameter2 Condition="'$(RepositoryUrl)' == ''">$(PrivateRepositoryUrl) + <_Parameter1>$(NeutralLanguage) diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToControlGeneratedAssemblyInfo.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToControlGeneratedAssemblyInfo.cs index 09ed07100c4b..e349d820a064 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToControlGeneratedAssemblyInfo.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToControlGeneratedAssemblyInfo.cs @@ -595,5 +595,38 @@ public void GenerateUserSecretsForTestProject() AssemblyInfo.Get(assemblyPath)["UserSecretsIdAttribute"].Should().Be("SecretsIdValue"); } + + [Theory] + [InlineData(true)] + [InlineData(false)] + public void It_includes_repository_url(bool privateRepo) + { + var fakeUrl = "fakeUrl"; + var testProject = new TestProject() + { + Name = "RepoUrlProject", + IsSdkProject = true, + TargetFrameworks = "netcoreapp3.1" + }; + + if (privateRepo) + { + testProject.AdditionalProperties["PublishRepositoryUrl"] = "true"; + testProject.AdditionalProperties["PrivateRepositoryUrl"] = fakeUrl; + } + else + { + testProject.AdditionalProperties["RepositoryUrl"] = fakeUrl; + } + + var testAsset = _testAssetsManager.CreateTestProject(testProject); + + var buildCommand = new BuildCommand(Log, Path.Combine(testAsset.TestRoot, testProject.Name)); + buildCommand.Execute().Should().Pass(); + + var assemblyPath = Path.Combine(buildCommand.GetOutputDirectory("netcoreapp3.1").FullName, testProject.Name + ".dll"); + + AssemblyInfo.Get(assemblyPath)["AssemblyMetadataAttribute"].Should().Be("RepositoryUrl:" + fakeUrl); + } } }