Skip to content

Commit 0e1c0a6

Browse files
authored
Merge pull request #3488 from arturcic/main
replace Mono.Cecil with Roslyn for VersionWriterTests
2 parents abb196f + 9b4b872 commit 0e1c0a6

File tree

3 files changed

+12
-12
lines changed

3 files changed

+12
-12
lines changed

src/Directory.Packages.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<PackageVersion Include="JetBrains.Annotations" Version="2022.3.1" />
1010
<PackageVersion Include="Microsoft.Build.Utilities.Core" Version="17.5.0" />
1111
<PackageVersion Include="Microsoft.Build" Version="17.5.0" />
12+
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.5.0" />
1213
<PackageVersion Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="3.3.4" />
1314
<PackageVersion Include="Microsoft.Extensions.Configuration.CommandLine" Version="7.0.0" />
1415
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
@@ -18,7 +19,6 @@
1819
<PackageVersion Include="Microsoft.Extensions.Options" Version="7.0.1" />
1920
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
2021
<PackageVersion Include="Microsoft.Win32.Registry" Version="6.0.0-preview.5.21301.5" />
21-
<PackageVersion Include="Mono.Cecil" Version="0.11.5" />
2222
<PackageVersion Include="Buildalyzer" Version="5.0.0" />
2323
<PackageVersion Include="coverlet.msbuild" Version="3.2.0" />
2424
<PackageVersion Include="MSBuild.ProjectCreation" Version="10.0.0" />

src/GitVersion.App.Tests/GitVersion.App.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<ItemGroup>
4-
<PackageReference Include="Mono.Cecil" />
4+
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" />
55
</ItemGroup>
66
<ItemGroup>
77
<ProjectReference Include="..\GitVersion.Core\GitVersion.Core.csproj" />

src/GitVersion.App.Tests/VersionWriterTests.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
using GitVersion.Core.Tests.Helpers;
22
using GitVersion.Extensions;
3+
using Microsoft.CodeAnalysis;
4+
using Microsoft.CodeAnalysis.CSharp;
35
using Microsoft.Extensions.DependencyInjection;
4-
using Mono.Cecil;
56

67
namespace GitVersion.App.Tests;
78

@@ -46,17 +47,16 @@ public void WriteVersionShouldWriteFileVersionWithPrereleaseTag()
4647

4748
private static Assembly GenerateAssembly(Version fileVersion, string prereleaseInfo)
4849
{
49-
var definition = new AssemblyNameDefinition("test-asm", fileVersion);
50-
51-
var asmDef = AssemblyDefinition.CreateAssembly(definition, "test-asm", ModuleKind.Dll);
52-
var constructor = typeof(AssemblyInformationalVersionAttribute).GetConstructor(new[] { typeof(string) });
53-
var methodReference = asmDef.MainModule.ImportReference(constructor);
54-
var customAttribute = new CustomAttribute(methodReference);
55-
customAttribute.ConstructorArguments.Add(new CustomAttributeArgument(asmDef.MainModule.TypeSystem.String, fileVersion + prereleaseInfo));
56-
asmDef.CustomAttributes.Add(customAttribute);
50+
var attribute = typeof(AssemblyInformationalVersionAttribute);
51+
var csharpCode = $@"[assembly: {attribute.FullName}(""{fileVersion + prereleaseInfo}"")]";
52+
var compilation = CSharpCompilation.Create("test-asm")
53+
.WithOptions(new(OutputKind.DynamicallyLinkedLibrary))
54+
.AddReferences(MetadataReference.CreateFromFile(typeof(object).Assembly.Location))
55+
.AddReferences(MetadataReference.CreateFromFile(attribute.Assembly.Location))
56+
.AddSyntaxTrees(CSharpSyntaxTree.ParseText(csharpCode));
5757

5858
using var memoryStream = new MemoryStream();
59-
asmDef.Write(memoryStream);
59+
compilation.Emit(memoryStream);
6060

6161
return Assembly.Load(memoryStream.ToArray());
6262
}

0 commit comments

Comments
 (0)