Full Code compilation template, needs refactoring

This commit is contained in:
Cj 2024-06-20 18:24:02 -04:00
parent 88e524c974
commit 1d94daa237
3 changed files with 105 additions and 194 deletions

View File

@ -172,11 +172,12 @@ public static class ProjectManager
file.CopyTo(tempPath, true); file.CopyTo(tempPath, true);
} }
// We dont want git and vs directories they are often locked leading to problems // We dont want git and vs directories they are often locked leading to problems, we also
// dont want the RecodeIt build project if it exists
List<string> copyIgnoreDirectories = List<string> copyIgnoreDirectories =
[ [
".vs", ".vs",
".git" ".git",
]; ];
foreach (DirectoryInfo subdir in dirs) foreach (DirectoryInfo subdir in dirs)

View File

@ -1,6 +1,9 @@
using Microsoft.CodeAnalysis; using Microsoft.Build.Locator;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.CodeAnalysis.Emit;
using Microsoft.CodeAnalysis.MSBuild;
using ReCodeIt.Models; using ReCodeIt.Models;
using ReCodeIt.ReMapper; using ReCodeIt.ReMapper;
using ReCodeIt.Utils; using ReCodeIt.Utils;
@ -15,12 +18,11 @@ public class ReCodeItCrossCompiler
Remapper = new(this); Remapper = new(this);
} }
private ReCodeItRemapper Remapper { get; }
public CrossCompilerSettings Settings => DataProvider.Settings.CrossCompiler;
public CrossCompilerProjectModel ActiveProject => ProjectManager.ActiveProject; public CrossCompilerProjectModel ActiveProject => ProjectManager.ActiveProject;
private int _identifiersChanged = 0; private CrossCompilerSettings Settings => DataProvider.Settings.CrossCompiler;
private ReCodeItRemapper Remapper { get; }
private Stopwatch SW { get; } = new();
public void StartRemap() public void StartRemap()
{ {
@ -55,50 +57,117 @@ public class ReCodeItCrossCompiler
Logger.Log("-----------------------------------------------", ConsoleColor.Green); Logger.Log("-----------------------------------------------", ConsoleColor.Green);
} }
public void StartCrossCompile() public async Task StartCrossCompile()
{ {
ProjectManager.LoadProjectCC(ActiveProject); ProjectManager.LoadProjectCC(ActiveProject);
AnalyzeSourceFiles(); SW.Reset();
SW.Start();
StartBuild(); var workspace = MSBuildWorkspace.Create();
MoveResult();
Logger.Log("Loading Solution...", ConsoleColor.Yellow);
var solution = await Task.Run(() => LoadSolutionAsync(workspace, ActiveProject.VisualStudioClonedSolutionPath));
Project newProject;
// Make sure we loop over the Id's instead of projects, because they are immutable
foreach (var projId in solution.ProjectIds)
{
newProject = solution.GetProject(projId);
// Skip the ReCodeIt project if it exists
if (newProject!.Name == "ReCodeIt")
{
continue;
} }
private void AnalyzeSourceFiles() Logger.Log("Reversing Identifier Changes...", ConsoleColor.Yellow);
foreach (var docId in newProject.DocumentIds)
{ {
foreach (var file in ProjectManager.AllProjectSourceFiles) var doc = newProject.GetDocument(docId);
// Remove the document from the project
newProject = newProject.RemoveDocument(docId);
// We only want C# source code
if (doc.SourceCodeKind != SourceCodeKind.Regular) { continue; }
var syntaxTree = await doc.GetSyntaxTreeAsync();
var syntaxRoot = syntaxTree!.GetCompilationUnitRoot();
syntaxRoot = FindAndChangeIdentifiers(syntaxRoot);
var newDoc = newProject.AddDocument(doc.Name, syntaxRoot.GetText());
newProject = newDoc.Project;
}
Logger.Log("Compiling Project...", ConsoleColor.Yellow);
var comp = await newProject.GetCompilationAsync();
foreach (var diag in comp.GetDiagnostics())
{ {
AnalyzeSourcefile(file); Logger.Log(diag.ToString());
}
using (var ms = new MemoryStream())
{
EmitResult emitResult = comp.Emit(ms);
// Check if the compilation was successful
if (emitResult.Success)
{
var assemblyPath = $"{ActiveProject.BuildDirectory}\\{ActiveProject.ProjectDllName}";
using (var fs = new FileStream(assemblyPath, FileMode.Create, FileAccess.Write))
{
ms.Seek(0, SeekOrigin.Begin);
ms.CopyTo(fs);
}
Logger.Log($"Compilation succeeded. Time ({SW.Elapsed.TotalSeconds:F1}) seconds, Assembly written to: {assemblyPath}", ConsoleColor.Green);
SW.Stop();
}
else
{
Logger.Log("Compilation failed.");
foreach (var diagnostic in emitResult.Diagnostics)
{
Logger.Log(diagnostic.ToString());
}
SW.Stop();
}
}
} }
} }
private void AnalyzeSourcefile(string file) private async Task<Solution> LoadSolutionAsync(MSBuildWorkspace workspace, string solutionPath)
{ {
_identifiersChanged = 0; if (!MSBuildLocator.IsRegistered) MSBuildLocator.RegisterDefaults();
var source = File.ReadAllText(file); using (var w = MSBuildWorkspace.Create())
var syntaxTree = CSharpSyntaxTree.ParseText(source); {
var root = syntaxTree.GetCompilationUnitRoot(); return await w.OpenSolutionAsync(solutionPath);
}
}
private CompilationUnitSyntax FindAndChangeIdentifiers(CompilationUnitSyntax syntax)
{
// Get the things we want to change // Get the things we want to change
var identifiers = root.DescendantNodes() var identifiers = syntax.DescendantNodes()
.OfType<IdentifierNameSyntax>() .OfType<IdentifierNameSyntax>()
.Where(id => ActiveProject.ChangedTypes.ContainsKey(id.Identifier.Text)); .Where(id => ActiveProject.ChangedTypes.ContainsKey(id.Identifier.Text));
if (!identifiers.Any()) { return; }
_identifiersChanged += identifiers.Count();
Logger.Log($"changing {_identifiersChanged} identifiers in file {Path.GetFileName(file)}", ConsoleColor.Green);
// Do Black Voodoo Magic // Do Black Voodoo Magic
var newRoot = root.ReplaceNodes(identifiers, (oldNode, newNode) => var newSyntax = syntax.ReplaceNodes(identifiers, (oldNode, newNode) =>
SyntaxFactory.IdentifierName(ActiveProject.ChangedTypes[oldNode.Identifier.Text]) SyntaxFactory.IdentifierName(ActiveProject.ChangedTypes[oldNode.Identifier.Text])
.WithLeadingTrivia(oldNode.GetLeadingTrivia()) .WithLeadingTrivia(oldNode.GetLeadingTrivia())
.WithTrailingTrivia(oldNode.GetTrailingTrivia())); .WithTrailingTrivia(oldNode.GetTrailingTrivia()));
File.WriteAllText(file, newRoot.ToFullString()); return newSyntax;
} }
/// <summary> /// <summary>
@ -160,7 +229,7 @@ public class ReCodeItCrossCompiler
if (builtDll == null) if (builtDll == null)
{ {
Logger.Log($"ERROR: No {ActiveProject.ProjectDllName} found at path {ActiveProject.VisualStudioClonedSolutionDirectory}, build failed.", ConsoleColor.Red); Logger.Log($"ERROR: No {ActiveProject.ProjectDllName} found at path {ActiveProject.VisualStudioClonedSolutionDirectory}, build failed.", ConsoleColor.Red);
CleanUp(); //CleanUp();
return; return;
} }
@ -176,7 +245,7 @@ public class ReCodeItCrossCompiler
Logger.Log($"Copying {ActiveProject.ProjectDllName} to {dest}", ConsoleColor.Yellow); Logger.Log($"Copying {ActiveProject.ProjectDllName} to {dest}", ConsoleColor.Yellow);
Logger.Log($"Successfully Cross Compiled Project {ActiveProject.SolutionName}", ConsoleColor.Green); Logger.Log($"Successfully Cross Compiled Project {ActiveProject.SolutionName}", ConsoleColor.Green);
CleanUp(); //CleanUp();
} }
private void CleanUp() private void CleanUp()

View File

@ -9,170 +9,11 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\cs\Microsoft.CodeAnalysis.resources.dll" /> <PackageReference Include="Microsoft.Build.Locator" Version="1.7.8" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\cs\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\cs\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\de\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\de\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\de\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\es\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\es\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\es\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\fr\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\fr\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\fr\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\Humanizer.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\it\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\it\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\it\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\ja\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\ja\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\ja\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\ko\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\ko\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\ko\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\Microsoft.Bcl.AsyncInterfaces.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\Microsoft.Build.Locator.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\Microsoft.CodeAnalysis.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\Microsoft.CodeAnalysis.pdb" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\Microsoft.CodeAnalysis.Workspaces.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.exe" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.exe.config" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\Microsoft.CodeAnalysis.Workspaces.pdb" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\Microsoft.Extensions.Configuration.Abstractions.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\Microsoft.Extensions.Configuration.Binder.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\Microsoft.Extensions.Configuration.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\Microsoft.Extensions.DependencyInjection.Abstractions.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\Microsoft.Extensions.DependencyInjection.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\Microsoft.Extensions.Logging.Abstractions.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\Microsoft.Extensions.Logging.Configuration.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\Microsoft.Extensions.Logging.Console.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\Microsoft.Extensions.Logging.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\Microsoft.Extensions.Options.ConfigurationExtensions.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\Microsoft.Extensions.Options.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\Microsoft.Extensions.Primitives.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\Newtonsoft.Json.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\pl\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\pl\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\pl\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\pt-BR\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\pt-BR\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\pt-BR\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\ru\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\ru\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\ru\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\System.Buffers.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\System.Collections.Immutable.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\System.CommandLine.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\System.Composition.AttributedModel.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\System.Composition.Convention.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\System.Composition.Hosting.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\System.Composition.Runtime.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\System.Composition.TypedParts.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\System.Diagnostics.DiagnosticSource.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\System.IO.Pipelines.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\System.Memory.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\System.Numerics.Vectors.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\System.Reflection.Metadata.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\System.Runtime.CompilerServices.Unsafe.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\System.Text.Encoding.CodePages.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\System.Text.Encodings.Web.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\System.Text.Json.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\System.Threading.Channels.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\System.Threading.Tasks.Extensions.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\System.ValueTuple.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\tr\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\tr\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\tr\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\zh-Hans\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\zh-Hans\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\zh-Hans\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\zh-Hant\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\zh-Hant\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-net472\zh-Hant\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\cs\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\cs\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\cs\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\de\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\de\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\de\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\es\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\es\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\es\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\fr\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\fr\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\fr\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Humanizer.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\it\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\it\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\it\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\ja\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\ja\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\ja\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\ko\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\ko\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\ko\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Microsoft.Bcl.AsyncInterfaces.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Microsoft.Build.Locator.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Microsoft.CodeAnalysis.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Microsoft.CodeAnalysis.pdb" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Microsoft.CodeAnalysis.Workspaces.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.deps.json" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.dll.config" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.runtimeconfig.json" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Microsoft.CodeAnalysis.Workspaces.pdb" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Microsoft.Extensions.Configuration.Abstractions.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Microsoft.Extensions.Configuration.Binder.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Microsoft.Extensions.Configuration.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Microsoft.Extensions.DependencyInjection.Abstractions.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Microsoft.Extensions.DependencyInjection.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Microsoft.Extensions.Logging.Abstractions.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Microsoft.Extensions.Logging.Configuration.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Microsoft.Extensions.Logging.Console.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Microsoft.Extensions.Logging.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Microsoft.Extensions.Options.ConfigurationExtensions.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Microsoft.Extensions.Options.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Microsoft.Extensions.Primitives.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\Newtonsoft.Json.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\pl\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\pl\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\pl\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\pt-BR\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\pt-BR\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\pt-BR\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\runtimes\browser\lib\net6.0\System.Text.Encodings.Web.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\runtimes\win\lib\net6.0\System.Text.Encoding.CodePages.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\ru\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\ru\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\ru\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\System.Collections.Immutable.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\System.CommandLine.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\System.Composition.AttributedModel.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\System.Composition.Convention.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\System.Composition.Hosting.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\System.Composition.Runtime.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\System.Composition.TypedParts.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\System.IO.Pipelines.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\System.Reflection.Metadata.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\System.Text.Encoding.CodePages.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\System.Text.Encodings.Web.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\System.Text.Json.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\System.Threading.Channels.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\tr\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\tr\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\tr\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\zh-Hans\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\zh-Hans\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\zh-Hans\System.CommandLine.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\zh-Hant\Microsoft.CodeAnalysis.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\zh-Hant\Microsoft.CodeAnalysis.Workspaces.resources.dll" />
<Content Remove="C:\Users\Corey\.nuget\packages\microsoft.codeanalysis.workspaces.msbuild\4.10.0\contentFiles\any\any\BuildHost-netcore\zh-Hant\System.CommandLine.resources.dll" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis" Version="4.10.0" /> <PackageReference Include="Microsoft.CodeAnalysis" Version="4.10.0" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.10.0" /> <PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.10.0" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.10.0" />
<PackageReference Include="Microsoft.CodeAnalysis.Workspaces.MSBuild" Version="4.10.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" /> <PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />
<PackageReference Include="Mono.Cecil" Version="0.11.5" /> <PackageReference Include="Mono.Cecil" Version="0.11.5" />
<PackageReference Include="morelinq" Version="4.2.0" /> <PackageReference Include="morelinq" Version="4.2.0" />