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

  <PropertyGroup>
    <TargetFramework>net8.0-windows</TargetFramework>
    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
    <IsPackable>false</IsPackable>
    <StartupObject>AutoGeneratedProgram</StartupObject>

    <AllowUnsafeBlocks>True</AllowUnsafeBlocks>

    <NoWarn>1701;1702;1705,67,169,1058,728,1720,649,168,251,660,661,675;1998;162;8632;626;8618;8714;8602</NoWarn>

    <GenerateAssemblyVersionAttribute>False</GenerateAssemblyVersionAttribute>
    <GenerateAssemblyFileVersionAttribute>False</GenerateAssemblyFileVersionAttribute>
    <GenerateAssemblyInformationalVersionAttribute>False</GenerateAssemblyInformationalVersionAttribute>
    <EnableDefaultItems>false</EnableDefaultItems>

    <AutoGenerateBindingRedirects>True</AutoGenerateBindingRedirects>

    <SignAssembly>True</SignAssembly>
    <AssemblyOriginatorKeyFile>..\ICSharpCode.Decompiler\ICSharpCode.Decompiler.snk</AssemblyOriginatorKeyFile>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)' == 'Debug'">
    <DebugType>full</DebugType>
    <DebugSymbols>true</DebugSymbols>
  </PropertyGroup>

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

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <DefineConstants>TRACE;DEBUG;ROSLYN;NET60;CS60;CS70;CS71;CS72;CS73;CS80;CS90;CS100</DefineConstants>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
    <DefineConstants>TRACE;ROSLYN;NET60;CS60;CS70;CS71;CS72;CS73;CS80;CS90;CS100</DefineConstants>
  </PropertyGroup>

  <Import Project="..\packages.props" />

  <ItemGroup>
    <PackageReference Include="DiffLib" Version="$(DiffLibVersion)" />
    <PackageReference Include="CliWrap" Version="3.4.4" />
    <PackageReference Include="NuGet.Protocol" Version="6.2.4" />
    <PackageReference Include="System.Collections.Immutable" Version="$(SystemCollectionsImmutableVersion)" />
    <PackageReference Include="System.Reflection.Metadata" Version="$(SystemReflectionMetadataVersion)" />
    <PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="$(RoslynVersion)" />
    <PackageReference Include="Microsoft.CodeAnalysis.VisualBasic" Version="$(RoslynVersion)" />
    <PackageReference Include="Microsoft.DiaSymReader.Converter.Xml" Version="$(DSRConverterXmlVersion)" />
    <PackageReference Include="NUnit3TestAdapter" Version="$(NUnitAdapterVersion)" />
    <PackageReference Include="coverlet.collector" Version="$(CoverletCollectorVersion)" />
    <PackageReference Include="NUnit" Version="$(NUnitVersion)" />
    <!-- used for xml test result files -->
    <PackageReference Include="JunitXml.TestLogger" Version="$(JUnitXmlTestLoggerVersion)" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkVersion)" />
    <PackageReference Include="System.Memory" Version="4.5.5" />
    <PackageReference Include="Mono.Cecil" Version="$(MonoCecilVersion)" />
    <PackageReference Include="Microsoft.NETCore.ILAsm" Version="$(ILAsmVersion)" />
    <PackageReference Include="Microsoft.NETCore.ILDAsm" Version="$(ILDAsmVersion)" />
    <PackageReference Include="System.Resources.Extensions" Version="6.0.0" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\ICSharpCode.ILSpyX\ICSharpCode.ILSpyX.csproj" />
    <ProjectReference Include="..\ICSharpCode.Decompiler\ICSharpCode.Decompiler.csproj" />
  </ItemGroup>

  <ItemGroup>
    <None Include="TestCases\Correctness\Jmp.il" />
    <None Include="TestCases\Correctness\StackTests.il" />
    <None Include="TestCases\Correctness\StackTypes.il" />
    <None Include="TestCases\Correctness\Uninit.vb" />
    <None Include="TestCases\Disassembler\Pretty\InterfaceImplAttributes.il" />
    <None Include="TestCases\Disassembler\Pretty\SortMembers.expected.il" />
    <None Include="TestCases\Disassembler\Pretty\SortMembers.il" />
    <None Include="TestCases\ILPretty\GuessAccessors.cs" />
    <None Include="TestCases\ILPretty\GuessAccessors.il" />
    <None Include="TestCases\ILPretty\Issue2260SwitchString.il" />
    <None Include="TestCases\ILPretty\UnknownTypes.cs" />
    <None Include="TestCases\ILPretty\UnknownTypes.il" />
    <None Include="TestCases\ILPretty\EvalOrder.cs" />
    <None Include="TestCases\ILPretty\EvalOrder.il" />
    <None Include="TestCases\ILPretty\CallIndirect.il" />
    <None Include="TestCases\ILPretty\Issue1454.il" />
    <None Include="TestCases\ILPretty\Issue1681.il" />
    <None Include="TestCases\ILPretty\Issue1922.il" />
    <None Include="TestCases\ILPretty\Issue1918.il" />
    <None Include="TestCases\ILPretty\Issue2104.il" />
    <None Include="TestCases\ILPretty\WeirdEnums.il" />
    <None Include="TestCases\ILPretty\ConstantBlobs.il" />
    <None Include="TestCases\ILPretty\CS1xSwitch_Debug.il" />
    <None Include="TestCases\ILPretty\CS1xSwitch_Release.il" />
    <None Include="TestCases\ILPretty\Issue1157.il" />
    <None Include="TestCases\ILPretty\Issue684.cs" />
    <None Include="TestCases\ILPretty\Issue684.il" />
    <None Include="TestCases\ILPretty\FSharpLoops.fs" />
    <None Include="TestCases\ILPretty\FSharpLoops_Debug.il" />
    <None Include="TestCases\ILPretty\FSharpLoops_Release.il" />
    <None Include="TestCases\ILPretty\FSharpUsing.fs" />
    <None Include="TestCases\ILPretty\FSharpUsing_Debug.il" />
    <None Include="TestCases\ILPretty\DirectCallToExplicitInterfaceImpl.il" />
    <None Include="TestCases\ILPretty\FSharpUsing_Release.il" />
    <None Include="TestCases\Correctness\BitNot.il" />
    <None Include="TestCases\Correctness\Readme.txt" />
  </ItemGroup>

  <ItemGroup>
    <Compile Include="DisassemblerPrettyTestRunner.cs" />
    <Compile Include="Helpers\RoslynToolset.cs" />
    <Compile Include="Output\InsertParenthesesVisitorTests.cs" />
    <Compile Include="ProjectDecompiler\TargetFrameworkTests.cs" />
    <Compile Include="TestAssemblyResolver.cs" />
    <Compile Include="Util\ResourceReaderWriterTests.cs" />
    <None Include="TestCases\VBPretty\VBAutomaticEvents.vb" />
    <Compile Include="TestCases\VBPretty\VBAutomaticEvents.cs" />
    <Compile Include="TestCases\VBPretty\VBNonGenericForEach.cs" />
    <None Include="TestCases\VBPretty\VBNonGenericForEach.vb" />
    <Compile Include="TestCases\VBPretty\YieldReturn.cs" />
    <None Include="TestCases\VBPretty\YieldReturn.vb" />
    <Compile Include="TypeSystem\ReflectionHelperTests.cs" />
    <None Include="TestCases\Pretty\MetadataAttributes.cs" />
    <None Include="TestCases\Correctness\ComInterop.cs" />
    <Compile Include="TestCases\Correctness\DeconstructionTests.cs" />
    <Compile Include="TestCases\Correctness\DynamicTests.cs" />
    <Compile Include="TestCases\Correctness\StringConcat.cs" />
    <None Include="TestCases\Pretty\StaticAbstractInterfaceMembers.cs" />
    <Compile Include="TestCases\Pretty\Structs.cs" />
    <None Include="TestCases\Pretty\FileScopedNamespaces.cs" />
    <Compile Include="TestCases\Pretty\PatternMatching.cs" />
    <None Include="TestCases\Ugly\NoPropertiesAndEvents.Expected.cs" />
    <Compile Include="TestCases\Ugly\NoPropertiesAndEvents.cs" />
    <None Include="TestCases\Pretty\CovariantReturns.cs" />
    <Compile Include="TestCases\VBPretty\VBPropertiesTest.cs" />
    <None Include="TestCases\ILPretty\Issue2260SwitchString.cs" />
    <None Include="TestCases\Pretty\Records.cs" />
    <Compile Include="TestCases\VBPretty\Issue2192.cs" />
    <Compile Include="Util\FileUtilityTests.cs" />
    <None Include="TestCases\Pretty\FunctionPointers.cs" />
    <None Include="TestCases\Pretty\CS9_ExtensionGetEnumerator.cs" />
    <None Include="TestCases\Pretty\UsingVariables.cs" />
    <None Include="TestCases\Pretty\AsyncForeach.cs" />
    <Compile Include="TestCases\Pretty\DeconstructionTests.cs" />
    <Compile Include="TestCases\ILPretty\Issue2104.cs" />
    <Compile Include="TestCases\Pretty\SwitchExpressions.cs" />
    <None Include="TestCases\Pretty\NativeInts.cs" />
    <None Include="TestCases\ILPretty\CallIndirect.cs" />
    <Compile Include="TestCases\ILPretty\Issue1681.cs" />
    <Compile Include="TestCases\Ugly\AggressiveScalarReplacementOfAggregates.cs" />
    <None Include="TestCases\Ugly\AggressiveScalarReplacementOfAggregates.Expected.cs" />
    <None Include="TestCases\Pretty\IndexRangeTest.cs" />
    <None Include="TestCases\ILPretty\Issue1918.cs" />
    <Compile Include="TestCases\ILPretty\Issue1922.cs" />
    <Compile Include="TestCases\Ugly\NoLocalFunctions.cs" />
    <Compile Include="TestCases\VBPretty\Issue1906.cs" />
    <Compile Include="TestCases\VBPretty\Select.cs" />
    <None Include="TestCases\ILPretty\WeirdEnums.cs" />
    <Compile Include="TestCases\ILPretty\ConstantBlobs.cs" />
    <Compile Include="TestCases\Pretty\AsyncStreams.cs" />
    <Compile Include="TestCases\Pretty\AsyncUsing.cs" />
    <Compile Include="TestCases\Pretty\OutVariables.cs" />
    <Compile Include="TestCases\Pretty\CustomTaskType.cs" />
    <None Include="TestCases\Ugly\NoForEachStatement.Expected.cs" />
    <Compile Include="TestCases\Ugly\NoForEachStatement.cs" />
    <None Include="TestCases\Ugly\NoExtensionMethods.Expected.cs" />
    <Compile Include="TestCases\Ugly\NoExtensionMethods.cs" />
    <None Include="TestCases\VBPretty\Issue1906.vb" />
    <None Include="TestCases\VBPretty\Issue2192.vb" />
    <None Include="TestCases\VBPretty\Select.vb" />
    <None Include="TestCases\VBPretty\VBCompoundAssign.cs" />
    <Compile Include="TestCases\Pretty\ThrowExpressions.cs" />
    <None Include="TestCases\ILPretty\Issue1145.cs" />
    <Compile Include="TestCases\ILPretty\Issue1157.cs" />
    <None Include="TestCases\ILPretty\Unsafe.cs" />
    <None Include="TestCases\ILPretty\CS1xSwitch_Debug.cs" />
    <None Include="TestCases\ILPretty\CS1xSwitch_Release.cs" />
    <None Include="TestCases\ILPretty\DirectCallToExplicitInterfaceImpl.cs" />
    <Compile Include="TestCases\ILPretty\Issue1389.cs" />
    <Compile Include="TestCases\ILPretty\Issue1454.cs" />
    <Compile Include="TestCases\Pretty\Discards.cs" />
    <Compile Include="TestCases\Pretty\MultidimensionalArray.cs" />
    <Compile Include="Output\CSharpAmbienceTests.cs" />
    <Compile Include="Semantics\ConversionTests.cs" />
    <Compile Include="Semantics\ExplicitConversionTest.cs" />
    <Compile Include="Semantics\OverloadResolutionTests.cs" />
    <Compile Include="DataFlowTest.cs" />
    <Compile Include="TestCases\Pretty\LocalFunctions.cs" />
    <Compile Include="TestCases\ILPretty\Issue1256.cs" />
    <Compile Include="TestCases\ILPretty\Issue1323.cs" />
    <Compile Include="TestCases\Pretty\CustomAttributes2.cs" />
    <Compile Include="TestCases\Pretty\EnumTests.cs" />
    <Compile Include="TestCases\Pretty\UserDefinedConversions.cs" />
    <None Include="TestCases\ILPretty\Unsafe.il" />
    <None Include="TestCases\Pretty\NullableRefTypes.cs" />
    <Compile Include="TestCases\Pretty\TypeMemberTests.cs" />
    <Compile Include="TestCases\Pretty\ValueTypes.cs" />
    <None Include="TestCases\ILPretty\Issue1389.il" />
    <None Include="TestCases\ILPretty\SequenceOfNestedIfs.cs" />
    <Compile Include="TestCases\Pretty\ConstructorInitializers.cs" />
    <None Include="TestCases\ILPretty\SequenceOfNestedIfs.il" />
    <None Include="TestCases\Pretty\AsyncMain.cs" />
    <None Include="TestCases\ILPretty\Issue1325.cs" />
    <Compile Include="TestCases\Pretty\ConstantsTests.cs" />
    <Compile Include="TestCases\Pretty\CS73_StackAllocInitializers.cs" />
    <Compile Include="TestCases\Pretty\OptionalArguments.cs" />
    <Compile Include="TestCases\Pretty\CustomShortCircuitOperators.cs" />
    <Compile Include="TestCases\Pretty\ReduceNesting.cs" />
    <Compile Include="TestCases\Pretty\InterfaceTests.cs" />
    <Compile Include="TestCases\Pretty\YieldReturn.cs" />
    <None Include="TestCases\ILPretty\Issue1256.il" />
    <None Include="TestCases\ILPretty\Issue1323.il" />
    <None Include="TestCases\ILPretty\Issue1325.il" />
    <None Include="TestCases\Ugly\NoDecimalConstants.Expected.cs" />
    <Compile Include="TestCases\Ugly\NoDecimalConstants.cs" />
    <None Include="TestCases\Disassembler\Pretty\SecurityDeclarations.il" />
    <Compile Include="TestCases\Pretty\CustomAttributeConflicts.cs" />
    <Compile Include="TestCases\Pretty\DynamicTests.cs" />
    <Compile Include="TestCases\Pretty\Issue1080.cs" />
    <None Include="TestCases\Pretty\MemberTests.cs" />
    <Compile Include="TestCases\Pretty\NamedArguments.cs" />
    <Compile Include="TestCases\Pretty\QualifierTests.cs" />
    <None Include="TestCases\Pretty\RefFields.cs" />
    <Compile Include="TestCases\Pretty\RefLocalsAndReturns.cs" />
    <Compile Include="TestCases\Pretty\TupleTests.cs" />
    <Compile Include="TestCases\Pretty\WellKnownConstants.cs" />
    <Compile Include="TypeSystem\TypeSystemLoaderTests.cs" />
    <Compile Include="TypeSystem\TypeSystemTestCase.cs" />
    <Compile Include="VBPrettyTestRunner.cs" />
    <Compile Include="TestCases\VBPretty\Async.cs" />
    <Compile Include="UglyTestRunner.cs" />
    <Compile Include="TestCases\Correctness\ExpressionTrees.cs" />
    <Compile Include="TestCases\Correctness\LINQRaytracer.cs" />
    <Compile Include="TestCases\Correctness\MiniJSON.cs" />
    <Compile Include="TestCases\Correctness\FloatingPointArithmetic.cs" />
    <Compile Include="TestCases\ILPretty\Issue1038.cs" />
    <None Include="TestCases\ILPretty\Issue1038.il" />
    <Compile Include="TestCases\Ugly\NoArrayInitializers.cs" />
    <None Include="TestCases\ILPretty\Issue1145.il" />
    <None Include="TestCases\Ugly\NoArrayInitializers.Expected.cs" />
    <None Include="TestCases\ILPretty\Issue1047.cs" />
    <Compile Include="TestCases\Correctness\NullPropagation.cs" />
    <Compile Include="TestCases\ILPretty\Issue982.cs" />
    <Compile Include="TestCases\Pretty\CS72_PrivateProtected.cs" />
    <Compile Include="TestCases\Pretty\StringInterpolation.cs" />
    <Compile Include="TestCases\Pretty\ExpressionTrees.cs" />
    <Compile Include="TestCases\Pretty\NullPropagation.cs" />
    <Compile Include="TestCases\Pretty\VariableNaming.cs" />
    <Compile Include="TestCases\Pretty\VariableNamingWithoutSymbols.cs" />
    <Compile Include="PdbGenerationTestRunner.cs" />
    <None Include="TestCases\ILPretty\Issue1047.il" />
    <None Include="TestCases\ILPretty\Issue959.cs" />
    <None Include="TestCases\ILPretty\FSharpLoops_Debug.cs" />
    <None Include="TestCases\ILPretty\FSharpLoops_Release.cs" />
    <Compile Include="TestCases\Pretty\DelegateConstruction.cs" />
    <None Include="TestCases\ILPretty\FSharpUsing_Debug.cs" />
    <None Include="TestCases\ILPretty\FSharpUsing_Release.cs" />
    <Compile Include="Helpers\CodeAssert.cs" />
    <Compile Include="Helpers\SdkUtility.cs" />
    <Compile Include="Helpers\RemoveCompilerAttribute.cs" />
    <Compile Include="Helpers\Tester.cs" />
    <Compile Include="Helpers\Tester.VB.cs" />
    <Compile Include="ILPrettyTestRunner.cs" />
    <Compile Include="TestCases\Correctness\Loops.cs" />
    <Compile Include="TestCases\Correctness\NullableTests.cs" />
    <Compile Include="TestCases\Correctness\TrickyTypes.cs" />
    <Compile Include="TestCases\Correctness\Using.cs" />
    <Compile Include="TestCases\ILPretty\Issue379.cs" />
    <Compile Include="TestCases\Pretty\FixProxyCalls.cs" />
    <Compile Include="TestCases\Pretty\UnsafeCode.cs" />
    <Compile Include="TestCases\Pretty\InitializerTests.cs" />
    <None Include="TestCases\ILPretty\Issue959.il" />
    <None Include="TestCases\ILPretty\Issue646.cs" />
    <Compile Include="TestCases\Pretty\Async.cs" />
    <Compile Include="TestCases\Pretty\CheckedUnchecked.cs" />
    <Compile Include="TestCases\Pretty\Generics.cs" />
    <Compile Include="TestCases\Pretty\LiftedOperators.cs" />
    <Compile Include="PrettyTestRunner.cs" />
    <Compile Include="RoundtripAssembly.cs" />
    <Compile Include="TestCases\Correctness\Capturing.cs" />
    <Compile Include="TestCases\Correctness\OverloadResolution.cs" />
    <Compile Include="TestCases\Pretty\AnonymousTypes.cs" />
    <Compile Include="TestCases\Correctness\Async.cs" />
    <Compile Include="TestCases\Correctness\CompoundAssignment.cs" />
    <Compile Include="TestCases\Correctness\ConditionalAttr.cs" />
    <Compile Include="TestCases\Correctness\ControlFlow.cs" />
    <Compile Include="TestCases\Correctness\Conversions.cs" />
    <Compile Include="TestCases\Correctness\DecimalFields.cs" />
    <Compile Include="TestCases\Correctness\Comparisons.cs" />
    <Compile Include="TestCases\Correctness\Generics.cs" />
    <Compile Include="TestCases\Correctness\HelloWorld.cs" />
    <Compile Include="TestCases\Correctness\InitializerTests.cs" />
    <Compile Include="TestCases\Correctness\MemberLookup.cs" />
    <Compile Include="TestCases\Correctness\PropertiesAndEvents.cs" />
    <Compile Include="TestCases\Correctness\Switch.cs" />
    <Compile Include="TestCases\Correctness\UndocumentedExpressions.cs" />
    <Compile Include="TestCases\Correctness\UnsafeCode.cs" />
    <Compile Include="TestCases\Correctness\ValueTypeCall.cs" />
    <Compile Include="CorrectnessTestRunner.cs" />
    <Compile Include="TestCases\Pretty\AutoProperties.cs" />
    <Compile Include="TestCases\Pretty\Lock.cs" />
    <Compile Include="TestCases\Pretty\Loops.cs" />
    <Compile Include="TestCases\Correctness\YieldReturn.cs" />
    <Compile Include="TestCases\Pretty\CompoundAssignmentTest.cs" />
    <Compile Include="TestCases\Pretty\ExceptionHandling.cs" />
    <Compile Include="TestCases\Pretty\HelloWorld.cs" />
    <Compile Include="TestCases\Pretty\InlineAssignmentTest.cs" />
    <Compile Include="TestCases\Pretty\PInvoke.cs" />
    <Compile Include="TestCases\Pretty\PropertiesAndEvents.cs" />
    <Compile Include="TestCases\Pretty\QueryExpressions.cs" />
    <Compile Include="TestCases\Pretty\ShortCircuit.cs" />
    <Compile Include="TestCases\Pretty\Switch.cs" />
    <Compile Include="TestCases\Pretty\TypeAnalysisTests.cs" />
    <Compile Include="TestCases\Pretty\Using.cs" />
    <Compile Include="TestTraceListener.cs" />
    <Compile Include="Util\BitSetTests.cs" />
    <Compile Include="Util\IntervalTests.cs" />
    <Compile Include="Util\LongSetTests.cs" />
    <Compile Include="TestCases\Pretty\AssemblyCustomAttributes.cs" />
    <Compile Include="TestCases\Pretty\CustomAttributeSamples.cs" />
    <Compile Include="TestCases\Pretty\CustomAttributes.cs" />
  </ItemGroup>

  <ItemGroup>
    <Content Include="TestCases\PdbGen\Members.xml" />
    <Content Include="TestCases\PdbGen\ProgressReporting.xml" />
    <Content Include="TestCases\PdbGen\ForLoopTests.xml" />
    <Content Include="TestCases\PdbGen\CustomPdbId.xml" />
    <Content Include="TestCases\PdbGen\HelloWorld.xml" />
    <Content Include="TestCases\PdbGen\LambdaCapturing.xml" />
  </ItemGroup>

  <ItemGroup>
    <None Include="TestCases\ILPretty\Issue646.il" />
    <None Include="TestCases\ILPretty\Issue379.il" />
    <None Include="TestCases\ILPretty\Issue982.il" />
    <None Include="TestCases\Pretty\Readme.txt" />
    <None Include="TestCases\VBPretty\VBCompoundAssign.vb" />
    <None Include="TestCases\VBPretty\Async.vb" />
    <None Include="TestCases\VBPretty\VBPropertiesTest.vb" />
    <EmbeddedResource Include="Util\Test.resources" />
  </ItemGroup>

</Project>
