<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>

    <Description>IL decompiler engine</Description>
    <Company>ic#code</Company>
    <Product>ILSpy</Product>
    <Copyright>Copyright 2011-2020 AlphaSierraPapa for the SharpDevelop Team</Copyright>
    <NeutralLanguage>en-US</NeutralLanguage>
    <GenerateAssemblyVersionAttribute>False</GenerateAssemblyVersionAttribute>
    <GenerateAssemblyFileVersionAttribute>False</GenerateAssemblyFileVersionAttribute>
    <GenerateAssemblyInformationalVersionAttribute>False</GenerateAssemblyInformationalVersionAttribute>

    <EnableDefaultItems>false</EnableDefaultItems>
    <LangVersion>8.0</LangVersion>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
    <SignAssembly>True</SignAssembly>
    <AssemblyOriginatorKeyFile>ICSharpCode.Decompiler.snk</AssemblyOriginatorKeyFile>
    <NoWarn>1701;1702;1591;1573</NoWarn>
  </PropertyGroup>
  
  <!-- HACK: Disable package generation on Unix due to tooling issues. -->
  <PropertyGroup Condition=" '$(OS)' == 'Windows_NT' ">
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
    <IncludeSymbolsInPackage>true</IncludeSymbolsInPackage>
    <NuspecFile>ICSharpCode.Decompiler.nuspec</NuspecFile>
    <NuspecProperties>Configuration=$(Configuration)</NuspecProperties>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)' == 'Debug'">
    <DebugType>portable</DebugType>
    <DebugSymbols>true</DebugSymbols>
    <CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
    <DefineConstants>$(DefineConstants);STEP</DefineConstants>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)' == 'Release'">
    <DebugType>portable</DebugType>
    <DebugSymbols>true</DebugSymbols>
  </PropertyGroup>

  <PropertyGroup>
    <CodeAnalysisRuleSet>ICSharpCode.Decompiler.ruleset</CodeAnalysisRuleSet>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Humanizer.Core" Version="2.2.0" />
    <PackageReference Include="System.Collections.Immutable" Version="1.5.0" />
    <PackageReference Include="System.Reflection.Metadata" Version="1.6.0" />
    <PackageReference Include="System.ValueTuple" Version="4.3.0" />
    <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
  </ItemGroup>

  <ItemGroup>
    <Compile Include="CSharp\Annotations.cs" />
    <Compile Include="CSharp\CallBuilder.cs" />
    <Compile Include="CSharp\CSharpLanguageVersion.cs" />
    <Compile Include="CSharp\ProjectDecompiler\IProjectFileWriter.cs" />
    <Compile Include="CSharp\OutputVisitor\GenericGrammarAmbiguityVisitor.cs" />
    <Compile Include="CSharp\ProjectDecompiler\IProjectInfoProvider.cs" />
    <Compile Include="CSharp\ProjectDecompiler\ProjectFileWriterSdkStyle.cs" />
    <Compile Include="CSharp\ProjectDecompiler\ProjectFileWriterDefault.cs" />
    <Compile Include="CSharp\RequiredNamespaceCollector.cs" />
    <Compile Include="CSharp\SequencePointBuilder.cs" />
    <Compile Include="CSharp\ProjectDecompiler\TargetFramework.cs" />
    <Compile Include="CSharp\ProjectDecompiler\TargetServices.cs" />
    <Compile Include="CSharp\Syntax\Expressions\DeclarationExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\SwitchExpression.cs" />
    <Compile Include="CSharp\Syntax\FunctionPointerAstType.cs" />
    <Compile Include="CSharp\Syntax\VariableDesignation.cs" />
    <Compile Include="IL\Transforms\DeconstructionTransform.cs" />
    <Compile Include="IL\Transforms\FixLoneIsInst.cs" />
    <Compile Include="IL\Instructions\DeconstructInstruction.cs" />
    <Compile Include="IL\Instructions\DeconstructResultInstruction.cs" />
    <Compile Include="IL\Instructions\MatchInstruction.cs" />
    <Compile Include="IL\Transforms\IndexRangeTransform.cs" />
    <Compile Include="CSharp\TranslatedStatement.cs" />
    <Compile Include="DebugInfo\KnownGuids.cs" />
    <Compile Include="Disassembler\DisassemblerSignatureTypeProvider.cs" />
    <Compile Include="Documentation\XmlDocumentationElement.cs" />
    <Compile Include="IL\ControlFlow\AwaitInFinallyTransform.cs" />
    <Compile Include="IL\Transforms\IntroduceNativeIntTypeOnLocals.cs" />
    <Compile Include="Semantics\OutVarResolveResult.cs" />
    <Compile Include="Solution\ProjectId.cs" />
    <Compile Include="Solution\ProjectItem.cs" />
    <Compile Include="Solution\SolutionCreator.cs" />
    <Compile Include="CSharp\Syntax\AstNode.cs" />
    <Compile Include="CSharp\Syntax\AstNodeCollection.cs" />
    <Compile Include="CSharp\Syntax\AstType.cs" />
    <Compile Include="CSharp\Syntax\ComposedType.cs" />
    <Compile Include="CSharp\Syntax\CSharpModifierToken.cs" />
    <Compile Include="CSharp\Syntax\CSharpTokenNode.cs" />
    <Compile Include="CSharp\Syntax\CSharpUtil.cs" />
    <Compile Include="CSharp\Syntax\DepthFirstAstVisitor.cs" />
    <Compile Include="CSharp\Syntax\DocumentationReference.cs" />
    <Compile Include="CSharp\Syntax\Expressions\AnonymousMethodExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\AnonymousTypeCreateExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\ArrayCreateExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\ArrayInitializerExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\AsExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\AssignmentExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\BaseReferenceExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\BinaryOperatorExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\CastExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\CheckedExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\ConditionalExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\DefaultValueExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\DirectionExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\ErrorExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\Expression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\IdentifierExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\IndexerExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\InterpolatedStringExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\InvocationExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\IsExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\LambdaExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\MemberReferenceExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\NamedArgumentExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\NamedExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\NullReferenceExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\ObjectCreateExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\OutVarDeclarationExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\ParenthesizedExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\PointerReferenceExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\PrimitiveExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\QueryExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\SizeOfExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\StackAllocExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\ThisReferenceExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\ThrowExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\TupleExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\TypeOfExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\TypeReferenceExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\UnaryOperatorExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\UncheckedExpression.cs" />
    <Compile Include="CSharp\Syntax\Expressions\UndocumentedExpression.cs" />
    <Compile Include="CSharp\Syntax\GeneralScope\Attribute.cs" />
    <Compile Include="CSharp\Syntax\GeneralScope\AttributeSection.cs" />
    <Compile Include="CSharp\Syntax\GeneralScope\Comment.cs" />
    <Compile Include="CSharp\Syntax\GeneralScope\Constraint.cs" />
    <Compile Include="CSharp\Syntax\GeneralScope\DelegateDeclaration.cs" />
    <Compile Include="CSharp\Syntax\GeneralScope\ExternAliasDeclaration.cs" />
    <Compile Include="CSharp\Syntax\GeneralScope\NamespaceDeclaration.cs" />
    <Compile Include="CSharp\Syntax\GeneralScope\PreProcessorDirective.cs" />
    <Compile Include="CSharp\Syntax\GeneralScope\TypeDeclaration.cs" />
    <Compile Include="CSharp\Syntax\GeneralScope\TypeParameterDeclaration.cs" />
    <Compile Include="CSharp\Syntax\GeneralScope\UsingAliasDeclaration.cs" />
    <Compile Include="CSharp\Syntax\GeneralScope\UsingDeclaration.cs" />
    <Compile Include="CSharp\Syntax\IAstVisitor.cs" />
    <Compile Include="CSharp\Syntax\Identifier.cs" />
    <Compile Include="CSharp\Syntax\IdentifierExpressionBackreference.cs" />
    <Compile Include="CSharp\Syntax\MemberType.cs" />
    <Compile Include="CSharp\Syntax\Modifiers.cs" />
    <Compile Include="CSharp\Syntax\NodeType.cs" />
    <Compile Include="CSharp\Syntax\PatternMatching\AnyNode.cs" />
    <Compile Include="CSharp\Syntax\PatternMatching\AnyNodeOrNull.cs" />
    <Compile Include="CSharp\Syntax\PatternMatching\Backreference.cs" />
    <Compile Include="CSharp\Syntax\PatternMatching\BacktrackingInfo.cs" />
    <Compile Include="CSharp\Syntax\PatternMatching\Choice.cs" />
    <Compile Include="CSharp\Syntax\PatternMatching\INode.cs" />
    <Compile Include="CSharp\Syntax\PatternMatching\Match.cs" />
    <Compile Include="CSharp\Syntax\PatternMatching\NamedNode.cs" />
    <Compile Include="CSharp\Syntax\PatternMatching\OptionalNode.cs" />
    <Compile Include="CSharp\Syntax\PatternMatching\Pattern.cs" />
    <Compile Include="CSharp\Syntax\PatternMatching\Repeat.cs" />
    <Compile Include="CSharp\Syntax\PrimitiveType.cs" />
    <Compile Include="CSharp\Syntax\Role.cs" />
    <Compile Include="CSharp\Syntax\Roles.cs" />
    <Compile Include="CSharp\Syntax\SimpleType.cs" />
    <Compile Include="CSharp\Syntax\Statements\BlockStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\BreakStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\CheckedStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\ContinueStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\DoWhileStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\EmptyStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\ExpressionStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\FixedStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\ForeachStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\ForStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\GotoStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\IfElseStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\LabelStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\LocalFunctionDeclarationStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\LockStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\ReturnStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\Statement.cs" />
    <Compile Include="CSharp\Syntax\Statements\SwitchStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\ThrowStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\TryCatchStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\UncheckedStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\UnsafeStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\UsingStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\VariableDeclarationStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\WhileStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\YieldBreakStatement.cs" />
    <Compile Include="CSharp\Syntax\Statements\YieldReturnStatement.cs" />
    <Compile Include="CSharp\Syntax\SyntaxExtensions.cs" />
    <Compile Include="CSharp\Syntax\SyntaxTree.cs" />
    <Compile Include="CSharp\Syntax\TextLocation.cs" />
    <Compile Include="CSharp\Syntax\TokenRole.cs" />
    <Compile Include="CSharp\Syntax\TupleAstType.cs" />
    <Compile Include="CSharp\Syntax\TypeMembers\Accessor.cs" />
    <Compile Include="CSharp\Syntax\TypeMembers\ConstructorDeclaration.cs" />
    <Compile Include="CSharp\Syntax\TypeMembers\DestructorDeclaration.cs" />
    <Compile Include="CSharp\Syntax\TypeMembers\EntityDeclaration.cs" />
    <Compile Include="CSharp\Syntax\TypeMembers\EnumMemberDeclaration.cs" />
    <Compile Include="CSharp\Syntax\TypeMembers\EventDeclaration.cs" />
    <Compile Include="CSharp\Syntax\TypeMembers\FieldDeclaration.cs" />
    <Compile Include="CSharp\Syntax\TypeMembers\FixedFieldDeclaration.cs" />
    <Compile Include="CSharp\Syntax\TypeMembers\FixedVariableInitializer.cs" />
    <Compile Include="CSharp\Syntax\TypeMembers\IndexerDeclaration.cs" />
    <Compile Include="CSharp\Syntax\TypeMembers\MethodDeclaration.cs" />
    <Compile Include="CSharp\Syntax\TypeMembers\OperatorDeclaration.cs" />
    <Compile Include="CSharp\Syntax\TypeMembers\ParameterDeclaration.cs" />
    <Compile Include="CSharp\Syntax\TypeMembers\PropertyDeclaration.cs" />
    <Compile Include="CSharp\Syntax\TypeMembers\VariableInitializer.cs" />
    <Compile Include="CSharp\Syntax\TypeSystemAstBuilder.cs" />
    <Compile Include="CSharp\OutputVisitor\CSharpAmbience.cs" />
    <Compile Include="CSharp\OutputVisitor\CSharpFormattingOptions.cs" />
    <Compile Include="CSharp\OutputVisitor\CSharpOutputVisitor.cs" />
    <Compile Include="CSharp\OutputVisitor\FormattingOptionsFactory.cs" />
    <Compile Include="CSharp\OutputVisitor\InsertMissingTokensDecorator.cs" />
    <Compile Include="CSharp\OutputVisitor\InsertParenthesesVisitor.cs" />
    <Compile Include="CSharp\OutputVisitor\InsertRequiredSpacesDecorator.cs" />
    <Compile Include="CSharp\OutputVisitor\InsertSpecialsDecorator.cs" />
    <Compile Include="CSharp\OutputVisitor\ITokenWriter.cs" />
    <Compile Include="CSharp\OutputVisitor\TextWriterTokenWriter.cs" />
    <Compile Include="CSharp\Resolver\AliasNamespaceResolveResult.cs" />
    <Compile Include="CSharp\Resolver\AliasTypeResolveResult.cs" />
    <Compile Include="CSharp\Resolver\AwaitResolveResult.cs" />
    <Compile Include="CSharp\Resolver\CastResolveResult.cs" />
    <Compile Include="CSharp\Resolver\CSharpConversions.cs" />
    <Compile Include="CSharp\Resolver\CSharpInvocationResolveResult.cs" />
    <Compile Include="CSharp\Resolver\CSharpOperators.cs" />
    <Compile Include="CSharp\Resolver\CSharpResolver.cs" />
    <Compile Include="CSharp\Resolver\DynamicInvocationResolveResult.cs" />
    <Compile Include="CSharp\Resolver\DynamicMemberResolveResult.cs" />
    <Compile Include="CSharp\Resolver\LambdaResolveResult.cs" />
    <Compile Include="CSharp\Resolver\Log.cs" />
    <Compile Include="CSharp\Resolver\MemberLookup.cs" />
    <Compile Include="CSharp\Resolver\MethodGroupResolveResult.cs" />
    <Compile Include="CSharp\Resolver\NameLookupMode.cs" />
    <Compile Include="CSharp\Resolver\OverloadResolution.cs" />
    <Compile Include="CSharp\Resolver\OverloadResolutionErrors.cs" />
    <Compile Include="IL\Transforms\FixRemainingIncrements.cs" />
    <Compile Include="IL\Transforms\ILExtraction.cs" />
    <Compile Include="TypeSystem\FunctionPointerType.cs" />
    <Compile Include="TypeSystem\Implementation\LocalFunctionMethod.cs" />
    <Compile Include="CSharp\Resolver\TypeInference.cs" />
    <Compile Include="CSharp\Transforms\CombineQueryExpressions.cs" />
    <Compile Include="CSharp\Transforms\FlattenSwitchBlocks.cs" />
    <Compile Include="CSharp\Transforms\IntroduceExtensionMethods.cs" />
    <Compile Include="CSharp\Transforms\IntroduceQueryExpressions.cs" />
    <Compile Include="CSharp\Transforms\NormalizeBlockStatements.cs" />
    <Compile Include="CSharp\Transforms\PrettifyAssignments.cs" />
    <Compile Include="CSharp\Transforms\RemoveCLSCompliantAttribute.cs" />
    <Compile Include="CSharp\TranslationContext.cs" />
    <Compile Include="CSharp\TypeSystem\AliasNamespaceReference.cs" />
    <Compile Include="CSharp\TypeSystem\CSharpTypeResolveContext.cs" />
    <Compile Include="CSharp\TypeSystem\MemberTypeOrNamespaceReference.cs" />
    <Compile Include="CSharp\TypeSystem\ResolvedUsingScope.cs" />
    <Compile Include="CSharp\TypeSystem\SimpleTypeOrNamespaceReference.cs" />
    <Compile Include="CSharp\TypeSystem\TypeOrNamespaceReference.cs" />
    <Compile Include="CSharp\TypeSystem\UsingScope.cs" />
    <Compile Include="DebugInfo\AsyncDebugInfo.cs" />
    <Compile Include="DebugInfo\ImportScopeInfo.cs" />
    <Compile Include="DebugInfo\DebugInfoGenerator.cs" />
    <Compile Include="DecompilerException.cs" />
    <Compile Include="DecompilerSettings.cs" />
    <Compile Include="CSharp\Transforms\ContextTrackingVisitor.cs" />
    <Compile Include="CSharp\Transforms\DecimalConstantTransform.cs" />
    <Compile Include="CSharp\Transforms\DeclareVariables.cs" />
    <Compile Include="CSharp\Transforms\EscapeInvalidIdentifiers.cs" />
    <Compile Include="CSharp\Transforms\FixNameCollisions.cs" />
    <Compile Include="CSharp\Transforms\IntroduceUsingDeclarations.cs" />
    <Compile Include="CSharp\Transforms\PatternStatementTransform.cs" />
    <Compile Include="CSharp\Transforms\TransformContext.cs" />
    <Compile Include="CSharp\TranslatedExpression.cs" />
    <Compile Include="CSharp\CSharpDecompiler.cs" />
    <Compile Include="CSharp\ExpressionBuilder.cs" />
    <Compile Include="CSharp\StatementBuilder.cs" />
    <Compile Include="CSharp\Transforms\AddCheckedBlocks.cs" />
    <Compile Include="CSharp\Transforms\TransformFieldAndConstructorInitializers.cs" />
    <Compile Include="CSharp\Transforms\CustomPatterns.cs" />
    <Compile Include="CSharp\Transforms\IAstTransform.cs" />
    <Compile Include="CSharp\Transforms\IntroduceUnsafeModifier.cs" />
    <Compile Include="CSharp\Transforms\ReplaceMethodCallsWithOperators.cs" />
    <Compile Include="CSharp\ProjectDecompiler\WholeProjectDecompiler.cs" />
    <Compile Include="CSharp\Transforms\AddXmlDocumentationTransform.cs" />
    <Compile Include="DecompileRun.cs" />
    <Compile Include="Disassembler\ILParser.cs" />
    <Compile Include="IL\ILInstructionExtensions.cs" />
    <Compile Include="IL\Transforms\CombineExitsTransform.cs" />
    <Compile Include="IL\Transforms\DynamicIsEventAssignmentTransform.cs" />
    <Compile Include="IL\Transforms\ReduceNestingTransform.cs" />
    <Compile Include="IL\Transforms\LocalFunctionDecompiler.cs" />
    <Compile Include="IL\Transforms\TransformDisplayClassUsage.cs" />
    <Compile Include="IL\Transforms\UserDefinedLogicTransform.cs" />
    <Compile Include="Metadata\AssemblyReferences.cs" />
    <Compile Include="Metadata\CodeMappingInfo.cs" />
    <Compile Include="Metadata\EnumUnderlyingTypeResolveException.cs" />
    <Compile Include="Metadata\MetadataTokenHelpers.cs" />
    <Compile Include="Disassembler\OpCodeInfo.cs" />
    <Compile Include="Documentation\GetPotentiallyNestedClassTypeReference.cs" />
    <Compile Include="Documentation\IdStringMemberReference.cs" />
    <Compile Include="Documentation\IdStringProvider.cs" />
    <Compile Include="Documentation\XmlDocLoader.cs" />
    <Compile Include="Documentation\XmlDocumentationProvider.cs" />
    <Compile Include="IL\ControlFlow\AsyncAwaitDecompiler.cs" />
    <Compile Include="IL\ControlFlow\AwaitInCatchTransform.cs" />
    <Compile Include="IL\ControlFlow\YieldReturnDecompiler.cs" />
    <Compile Include="Metadata\CustomAttributeDecoder.cs" />
    <Compile Include="Metadata\Dom.cs" />
    <Compile Include="Metadata\DotNetCorePathFinder.cs" />
    <Compile Include="Metadata\DotNetCorePathFinderExtensions.cs" />
    <Compile Include="Metadata\LightJson\JsonArray.cs" />
    <Compile Include="Metadata\LightJson\JsonObject.cs" />
    <Compile Include="Metadata\LightJson\JsonValue.cs" />
    <Compile Include="Metadata\LightJson\JsonValueType.cs" />
    <Compile Include="Metadata\LightJson\Serialization\JsonParseException.cs" />
    <Compile Include="Metadata\LightJson\Serialization\JsonReader.cs" />
    <Compile Include="Metadata\LightJson\Serialization\TextPosition.cs" />
    <Compile Include="Metadata\LightJson\Serialization\TextScanner.cs" />
    <Compile Include="Metadata\MethodSemanticsLookup.cs" />
    <Compile Include="Metadata\OperandType.cs" />
    <Compile Include="Metadata\PEFile.cs" />
    <Compile Include="Metadata\SignatureBlobComparer.cs" />
    <Compile Include="Metadata\UniversalAssemblyResolver.cs" />
    <Compile Include="Metadata\UnresolvedAssemblyNameReference.cs" />
    <Compile Include="IL\Instructions\DynamicInstructions.cs" />
    <Compile Include="IL\PointerArithmeticOffset.cs" />
    <Compile Include="IL\ILAstWritingOptions.cs" />
    <Compile Include="IL\Instructions\LdFlda.cs" />
    <Compile Include="IL\Instructions\NullableInstructions.cs" />
    <Compile Include="IL\Instructions\StLoc.cs" />
    <Compile Include="DebugInfo\SequencePoint.cs" />
    <Compile Include="IL\Instructions\CallIndirect.cs" />
    <Compile Include="IL\Instructions\DefaultValue.cs" />
    <Compile Include="IL\Transforms\DynamicCallSiteTransform.cs" />
    <Compile Include="IL\Transforms\EarlyExpressionTransforms.cs" />
    <Compile Include="IL\Instructions\ExpressionTreeCast.cs" />
    <Compile Include="IL\Transforms\HighLevelLoopTransform.cs" />
    <Compile Include="IL\Transforms\NamedArgumentTransform.cs" />
    <Compile Include="IL\Transforms\IntroduceDynamicTypeOnLocals.cs" />
    <Compile Include="IL\Transforms\IntroduceRefReadOnlyModifierOnLocals.cs" />
    <Compile Include="IL\Transforms\NullPropagationTransform.cs" />
    <Compile Include="IL\Transforms\ProxyCallReplacer.cs" />
    <Compile Include="IL\Instructions\StringToInt.cs" />
    <Compile Include="IL\Instructions\UsingInstruction.cs" />
    <Compile Include="IL\Transforms\InlineReturnTransform.cs" />
    <Compile Include="IL\Transforms\SwitchOnNullableTransform.cs" />
    <Compile Include="IL\Transforms\SwitchOnStringTransform.cs" />
    <Compile Include="IL\Transforms\TransformExpressionTrees.cs" />
    <Compile Include="IL\Transforms\TupleTransform.cs" />
    <Compile Include="IL\Transforms\UsingTransform.cs" />
    <Compile Include="IL\ControlFlow\ControlFlowGraph.cs" />
    <Compile Include="IL\ControlFlow\StateRangeAnalysis.cs" />
    <Compile Include="IL\ControlFlow\SymbolicExecution.cs" />
    <Compile Include="IL\Instructions\Await.cs" />
    <Compile Include="IL\Instructions\ILVariableCollection.cs" />
    <Compile Include="IL\Instructions\LockInstruction.cs" />
    <Compile Include="IL\Instructions\NullCoalescingInstruction.cs" />
    <Compile Include="IL\Instructions\LogicInstructions.cs" />
    <Compile Include="IL\Patterns\AnyNode.cs" />
    <Compile Include="IL\Transforms\AssignVariableNames.cs" />
    <Compile Include="IL\Transforms\DetectCatchWhenConditionBlocks.cs" />
    <Compile Include="IL\Transforms\LockTransform.cs" />
    <Compile Include="IL\Transforms\NullableLiftingTransform.cs" />
    <Compile Include="IL\Transforms\NullCoalescingTransform.cs" />
    <Compile Include="IL\Transforms\StatementTransform.cs" />
    <Compile Include="IL\Transforms\TransformCollectionAndObjectInitializers.cs" />
    <Compile Include="Output\TextTokenWriter.cs" />
    <Compile Include="DebugInfo\IDebugInfoProvider.cs" />
    <Compile Include="DebugInfo\PortablePdbWriter.cs" />
    <Compile Include="Semantics\InterpolatedStringResolveResult.cs" />
    <Compile Include="SRMExtensions.cs" />
    <Compile Include="SRMHacks.cs" />
    <Compile Include="TypeSystem\ApplyAttributeTypeVisitor.cs" />
    <Compile Include="TypeSystem\GenericContext.cs" />
    <Compile Include="TypeSystem\Implementation\AttributeListBuilder.cs" />
    <Compile Include="TypeSystem\Implementation\CustomAttribute.cs" />
    <Compile Include="TypeSystem\Implementation\DecimalConstantHelper.cs" />
    <Compile Include="TypeSystem\Implementation\DecoratedType.cs" />
    <Compile Include="TypeSystem\Implementation\DefaultTypeParameter.cs" />
    <Compile Include="TypeSystem\Implementation\FakeMember.cs" />
    <Compile Include="TypeSystem\Implementation\KnownAttributes.cs" />
    <Compile Include="TypeSystem\Implementation\MetadataField.cs" />
    <Compile Include="TypeSystem\Implementation\MetadataMethod.cs" />
    <Compile Include="TypeSystem\Implementation\MetadataNamespace.cs" />
    <Compile Include="TypeSystem\Implementation\MetadataParameter.cs" />
    <Compile Include="TypeSystem\Implementation\MetadataEvent.cs" />
    <Compile Include="TypeSystem\Implementation\MetadataProperty.cs" />
    <Compile Include="TypeSystem\Implementation\MetadataTypeDefinition.cs" />
    <Compile Include="TypeSystem\Implementation\MetadataTypeParameter.cs" />
    <Compile Include="TypeSystem\Implementation\SpecializedParameter.cs" />
    <Compile Include="TypeSystem\Implementation\SyntheticRangeIndexer.cs" />
    <Compile Include="TypeSystem\Implementation\ThreeState.cs" />
    <Compile Include="TypeSystem\MetadataModule.cs" />
    <Compile Include="TypeSystem\ModifiedType.cs" />
    <Compile Include="TypeSystem\Implementation\PinnedType.cs" />
    <Compile Include="Metadata\MetadataExtensions.cs" />
    <Compile Include="Semantics\ThrowResolveResult.cs" />
    <Compile Include="Semantics\TupleResolveResult.cs" />
    <Compile Include="TypeSystem\NormalizeTypeVisitor.cs" />
    <Compile Include="TypeSystem\Nullability.cs" />
    <Compile Include="TypeSystem\Implementation\NullabilityAnnotatedType.cs" />
    <Compile Include="TypeSystem\TupleType.cs" />
    <Compile Include="TypeSystem\TypeProvider.cs" />
    <Compile Include="Util\GraphVizGraph.cs" />
    <Compile Include="Util\KeyComparer.cs" />
    <Compile Include="Util\LongDict.cs" />
    <Compile Include="Util\ResourcesFile.cs" />
    <Compile Include="Util\ResXResourceWriter.cs" />
    <Compile Include="Util\UnicodeNewline.cs" />
    <Compile Include="FlowAnalysis\ControlFlowNode.cs" />
    <Compile Include="FlowAnalysis\DataFlowVisitor.cs" />
    <Compile Include="FlowAnalysis\DefiniteAssignmentVisitor.cs" />
    <Compile Include="FlowAnalysis\Dominance.cs" />
    <Compile Include="FlowAnalysis\ReachingDefinitionsVisitor.cs" />
    <Compile Include="CSharp\Syntax\IAnnotatable.cs" />
    <Compile Include="IL\ControlFlow\ConditionDetection.cs" />
    <Compile Include="IL\ControlFlow\ControlFlowSimplification.cs" />
    <Compile Include="IL\ControlFlow\DetectPinnedRegions.cs" />
    <Compile Include="IL\ControlFlow\ExitPoints.cs" />
    <Compile Include="IL\ControlFlow\LoopDetection.cs" />
    <Compile Include="IL\ControlFlow\SwitchAnalysis.cs" />
    <Compile Include="IL\ControlFlow\SwitchDetection.cs" />
    <Compile Include="IL\Instructions.cs">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>Instructions.tt</DependentUpon>
    </Compile>
    <Compile Include="IL\Instructions\Comp.cs" />
    <Compile Include="IL\Instructions\BinaryNumericInstruction.cs" />
    <Compile Include="IL\Instructions\Block.cs" />
    <Compile Include="IL\Instructions\BlockContainer.cs" />
    <Compile Include="IL\Instructions\Branch.cs" />
    <Compile Include="IL\Instructions\CallInstruction.cs" />
    <Compile Include="IL\Instructions\CompoundAssignmentInstruction.cs" />
    <Compile Include="IL\Instructions\Conv.cs" />
    <Compile Include="IL\Instructions\IfInstruction.cs" />
    <Compile Include="IL\Instructions\ILFunction.cs" />
    <Compile Include="IL\Instructions\ILInstruction.cs" />
    <Compile Include="IL\Instructions\InstructionCollection.cs" />
    <Compile Include="IL\Instructions\LdLen.cs" />
    <Compile Include="IL\Instructions\Leave.cs" />
    <Compile Include="IL\Instructions\MemoryInstructions.cs" />
    <Compile Include="IL\Instructions\PatternMatching.cs" />
    <Compile Include="IL\Instructions\SimpleInstruction.cs" />
    <Compile Include="IL\Instructions\SwitchInstruction.cs" />
    <Compile Include="IL\Instructions\TryInstruction.cs" />
    <Compile Include="IL\Instructions\UnaryInstruction.cs" />
    <Compile Include="IL\Patterns\ListMatch.cs" />
    <Compile Include="IL\Patterns\Match.cs" />
    <Compile Include="IL\SlotInfo.cs" />
    <Compile Include="IL\Transforms\BlockTransform.cs" />
    <Compile Include="IL\Transforms\CachedDelegateInitialization.cs" />
    <Compile Include="IL\Transforms\CopyPropagation.cs" />
    <Compile Include="IL\Transforms\IILTransform.cs" />
    <Compile Include="IL\Transforms\ILInlining.cs" />
    <Compile Include="IL\Transforms\ExpressionTransforms.cs" />
    <Compile Include="IL\Transforms\DelegateConstruction.cs" />
    <Compile Include="IL\Transforms\RemoveDeadVariableInit.cs" />
    <Compile Include="IL\Transforms\SplitVariables.cs" />
    <Compile Include="IL\Transforms\Stepper.cs" />
    <Compile Include="IL\Transforms\TransformArrayInitializers.cs" />
    <Compile Include="Disassembler\DisassemblerHelpers.cs" />
    <Compile Include="Disassembler\ILStructure.cs" />
    <Compile Include="Disassembler\MethodBodyDisassembler.cs" />
    <Compile Include="Disassembler\ReflectionDisassembler.cs" />
    <Compile Include="IL\SemanticHelper.cs" />
    <Compile Include="IL\BlockBuilder.cs" />
    <Compile Include="Metadata\ILOpCodes.cs">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>ILOpCodes.tt</DependentUpon>
    </Compile>
    <Compile Include="IL\ILReader.cs" />
    <Compile Include="IL\ILTypeExtensions.cs" />
    <Compile Include="IL\ILVariable.cs" />
    <Compile Include="IL\InstructionFlags.cs" />
    <Compile Include="IL\InstructionOutputExtensions.cs" />
    <Compile Include="IL\PrimitiveType.cs" />
    <Compile Include="IL\StackType.cs" />
    <Compile Include="IL\Transforms\TransformAssignment.cs" />
    <Compile Include="NRExtensions.cs" />
    <Compile Include="Output\ITextOutput.cs" />
    <Compile Include="Output\PlainTextOutput.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="Output\TextOutputWriter.cs" />
    <Compile Include="Semantics\AmbiguousResolveResult.cs" />
    <Compile Include="Semantics\ArrayAccessResolveResult.cs" />
    <Compile Include="Semantics\ArrayCreateResolveResult.cs" />
    <Compile Include="Semantics\ByReferenceResolveResult.cs" />
    <Compile Include="Semantics\ConstantResolveResult.cs" />
    <Compile Include="Semantics\Conversion.cs" />
    <Compile Include="Semantics\ConversionResolveResult.cs" />
    <Compile Include="Semantics\ErrorResolveResult.cs" />
    <Compile Include="Semantics\ForEachResolveResult.cs" />
    <Compile Include="Semantics\InitializedObjectResolveResult.cs" />
    <Compile Include="Semantics\InvocationResolveResult.cs" />
    <Compile Include="Semantics\LocalResolveResult.cs" />
    <Compile Include="Semantics\MemberResolveResult.cs" />
    <Compile Include="Semantics\NamedArgumentResolveResult.cs" />
    <Compile Include="Semantics\NamespaceResolveResult.cs" />
    <Compile Include="Semantics\OperatorResolveResult.cs" />
    <Compile Include="Semantics\ResolveResult.cs" />
    <Compile Include="Semantics\SizeOfResolveResult.cs" />
    <Compile Include="Semantics\ThisResolveResult.cs" />
    <Compile Include="Semantics\TypeIsResolveResult.cs" />
    <Compile Include="Semantics\TypeOfResolveResult.cs" />
    <Compile Include="Semantics\TypeResolveResult.cs" />
    <Compile Include="Semantics\UnknownMemberResolveResult.cs" />
    <Compile Include="TypeSystem\Accessibility.cs" />
    <Compile Include="TypeSystem\ArrayType.cs" />
    <Compile Include="TypeSystem\AssemblyQualifiedTypeName.cs" />
    <Compile Include="TypeSystem\ByReferenceType.cs" />
    <Compile Include="TypeSystem\ComHelper.cs" />
    <Compile Include="TypeSystem\DecompilerTypeSystem.cs" />
    <Compile Include="TypeSystem\FullTypeName.cs" />
    <Compile Include="Output\IAmbience.cs" />
    <Compile Include="TypeSystem\IAssembly.cs" />
    <Compile Include="TypeSystem\IAttribute.cs" />
    <Compile Include="TypeSystem\ICodeContext.cs" />
    <Compile Include="TypeSystem\ICompilation.cs" />
    <Compile Include="TypeSystem\IEntity.cs" />
    <Compile Include="TypeSystem\IEvent.cs" />
    <Compile Include="TypeSystem\IField.cs" />
    <Compile Include="TypeSystem\IFreezable.cs" />
    <Compile Include="TypeSystem\IInterningProvider.cs" />
    <Compile Include="TypeSystem\IMember.cs" />
    <Compile Include="TypeSystem\IMethod.cs" />
    <Compile Include="TypeSystem\Implementation\AbstractFreezable.cs" />
    <Compile Include="TypeSystem\Implementation\AbstractTypeParameter.cs" />
    <Compile Include="TypeSystem\Implementation\AbstractType.cs" />
    <Compile Include="TypeSystem\Implementation\BaseTypeCollector.cs" />
    <Compile Include="TypeSystem\Implementation\DefaultAssemblyReference.cs" />
    <Compile Include="TypeSystem\Implementation\DefaultAttribute.cs" />
    <Compile Include="TypeSystem\Implementation\DefaultParameter.cs" />
    <Compile Include="TypeSystem\Implementation\DefaultVariable.cs" />
    <Compile Include="TypeSystem\Implementation\DummyTypeParameter.cs" />
    <Compile Include="TypeSystem\Implementation\GetClassTypeReference.cs" />
    <Compile Include="TypeSystem\Implementation\GetMembersHelper.cs" />
    <Compile Include="TypeSystem\Implementation\KnownTypeCache.cs" />
    <Compile Include="TypeSystem\Implementation\MergedNamespace.cs" />
    <Compile Include="TypeSystem\Implementation\MinimalCorlib.cs" />
    <Compile Include="TypeSystem\Implementation\NestedTypeReference.cs" />
    <Compile Include="TypeSystem\Implementation\SimpleCompilation.cs" />
    <Compile Include="TypeSystem\Implementation\SpecializedEvent.cs" />
    <Compile Include="TypeSystem\Implementation\SpecializedField.cs" />
    <Compile Include="TypeSystem\Implementation\SpecializedMember.cs" />
    <Compile Include="TypeSystem\Implementation\SpecializedMethod.cs" />
    <Compile Include="TypeSystem\Implementation\SpecializedProperty.cs" />
    <Compile Include="TypeSystem\Implementation\TypeParameterReference.cs" />
    <Compile Include="TypeSystem\Implementation\TypeWithElementType.cs" />
    <Compile Include="TypeSystem\Implementation\UnknownType.cs" />
    <Compile Include="TypeSystem\INamedElement.cs" />
    <Compile Include="TypeSystem\INamespace.cs" />
    <Compile Include="TypeSystem\InheritanceHelper.cs" />
    <Compile Include="TypeSystem\IntersectionType.cs" />
    <Compile Include="TypeSystem\IParameter.cs" />
    <Compile Include="TypeSystem\IParameterizedMember.cs" />
    <Compile Include="TypeSystem\IProperty.cs" />
    <Compile Include="TypeSystem\ISupportsInterning.cs" />
    <Compile Include="TypeSystem\ISymbol.cs" />
    <Compile Include="TypeSystem\IType.cs" />
    <Compile Include="TypeSystem\ITypeDefinition.cs" />
    <Compile Include="TypeSystem\ITypeParameter.cs" />
    <Compile Include="TypeSystem\ITypeReference.cs" />
    <Compile Include="TypeSystem\IVariable.cs" />
    <Compile Include="TypeSystem\KnownTypeReference.cs" />
    <Compile Include="TypeSystem\NullableType.cs" />
    <Compile Include="TypeSystem\ParameterizedType.cs" />
    <Compile Include="TypeSystem\ParameterListComparer.cs" />
    <Compile Include="TypeSystem\PointerType.cs" />
    <Compile Include="TypeSystem\ReflectionHelper.cs" />
    <Compile Include="TypeSystem\ReflectionNameParseException.cs" />
    <Compile Include="TypeSystem\SimpleTypeResolveContext.cs" />
    <Compile Include="TypeSystem\SpecialType.cs" />
    <Compile Include="TypeSystem\TaskType.cs" />
    <Compile Include="TypeSystem\TopLevelTypeName.cs" />
    <Compile Include="TypeSystem\TypeKind.cs" />
    <Compile Include="TypeSystem\TypeParameterSubstitution.cs" />
    <Compile Include="TypeSystem\TypeSystemExtensions.cs" />
    <Compile Include="TypeSystem\TypeUtils.cs" />
    <Compile Include="TypeSystem\IDecompilerTypeSystem.cs" />
    <Compile Include="TypeSystem\ReferenceResolvingException.cs" />
    <Compile Include="TypeSystem\TypeVisitor.cs" />
    <Compile Include="TypeSystem\VarArgInstanceMethod.cs" />
    <Compile Include="Util\BusyManager.cs" />
    <Compile Include="Util\CacheManager.cs" />
    <Compile Include="Util\CallbackOnDispose.cs" />
    <Compile Include="Util\CollectionExtensions.cs" />
    <Compile Include="Util\BitSet.cs" />
    <Compile Include="Util\CSharpPrimitiveCast.cs" />
    <Compile Include="Util\EmptyList.cs" />
    <Compile Include="Util\ExtensionMethods.cs" />
    <Compile Include="Util\Interval.cs" />
    <Compile Include="Util\LazyInit.cs" />
    <Compile Include="Util\LongSet.cs" />
    <Compile Include="Util\MultiDictionary.cs" />
    <Compile Include="Util\Platform.cs" />
    <Compile Include="Util\ProjectedList.cs" />
    <Compile Include="Util\ReferenceComparer.cs" />
    <Compile Include="Util\TreeTraversal.cs" />
    <Compile Include="Util\UnionFind.cs" />
    <None Include="ICSharpCode.Decompiler.nuspec" DependentUpon="ICSharpCode.Decompiler.nuspec.template" />
    <None Include="ICSharpCode.Decompiler.nuspec.template" />
    <None Include="ICSharpCode.Decompiler.ruleset" />
    <None Include="ICSharpCode.Decompiler.snk" />
    <None Include="Metadata\ILOpCodes.tt">
      <Generator>TextTemplatingFileGenerator</Generator>
      <LastGenOutput>ILOpCodes.cs</LastGenOutput>
    </None>
    <None Include="IL\Instructions.tt">
      <Generator>TextTemplatingFileGenerator</Generator>
      <LastGenOutput>Instructions.cs</LastGenOutput>
    </None>
    <None Include="Properties\AssemblyInfo.template.cs" />
  </ItemGroup>

  <ItemGroup>
    <None Include="..\nrefactory\doc\XML Documentation.html">
      <Link>Documentation\XML Documentation.html</Link>
    </None>
  </ItemGroup>

  <ItemGroup>
    <Content Include="..\doc\Pattern Matching.html">
      <Link>CSharp\Syntax\PatternMatching\Pattern Matching.html</Link>
    </Content>
  </ItemGroup>

  <ItemGroup>
    <Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" />
  </ItemGroup>

  <Target Name="ILSpyUpdateAssemblyInfo" BeforeTargets="BeforeBuild">
    <ItemGroup>
      <UpdateAssemblyInfoStamp Include="obj\update-assemblyinfo-last-commit-hash.txt" />
    </ItemGroup>
    <PropertyGroup Condition=" '$(OS)' == 'Windows_NT' ">
      <UpdateAssemblyInfo>powershell -NoProfile -ExecutionPolicy Bypass -File BuildTools/update-assemblyinfo.ps1 $(Configuration)</UpdateAssemblyInfo>
      <GitRevParse>git rev-parse HEAD^^{commit}</GitRevParse>
    </PropertyGroup>
    <PropertyGroup Condition=" '$(OS)' != 'Windows_NT' ">
      <UpdateAssemblyInfo>pwsh -NoProfile -ExecutionPolicy Bypass -File BuildTools/update-assemblyinfo.ps1 $(Configuration)</UpdateAssemblyInfo>
      <GitRevParse>git rev-parse HEAD^{commit}</GitRevParse>
    </PropertyGroup>
    <ReadLinesFromFile ContinueOnError="true" File="@(UpdateAssemblyInfoStamp)">
      <Output TaskParameter="Lines" PropertyName="LastCommitHash" />
    </ReadLinesFromFile>
    <Exec ContinueOnError="true" WorkingDirectory=".." Command="$(GitRevParse)" ConsoleToMSBuild="true">
      <Output TaskParameter="ConsoleOutput" PropertyName="CommitHash" />
    </Exec>
    <Exec WorkingDirectory=".." Command="$(UpdateAssemblyInfo)" Timeout="60000" Condition="'$(CommitHash)'!='$(LastCommitHash)'" />
    <WriteLinesToFile Lines="$(CommitHash)" File="@(UpdateAssemblyInfoStamp)" Overwrite="true" Condition="'$(CommitHash)'!='$(LastCommitHash)'" />
  </Target>
  
</Project>