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

  <PropertyGroup>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
  </PropertyGroup>

  <PropertyGroup>
    <TargetFramework>net472</TargetFramework>
    <RootNamespace>ICSharpCode.ILSpy.AddIn</RootNamespace>

    <Company>IC#Code</Company>
    <Description>ILSpy</Description>
    <NeutralLanguage>en-US</NeutralLanguage>
    <Version>1.7.1.0</Version>
    <FileVersion>1.7.1.0</FileVersion>

    <EnableDefaultItems>False</EnableDefaultItems>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>

    <SignAssembly>True</SignAssembly>
    <AssemblyOriginatorKeyFile>Key.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="'$(AppVeyor)' != ''">
    <DeployExtension>False</DeployExtension>
  </PropertyGroup>

  <ItemGroup>
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Design" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.VisualStudio.SDK " Version="15.9.3" />
    <PackageReference Include="Microsoft.CodeAnalysis" Version="2.4.0" />
    <PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="2.4.0" />
    <PackageReference Include="Microsoft.VisualStudio.LanguageServices" Version="2.4.0" />
    <PackageReference Include="Mono.Cecil" Version="0.10.3" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\ILSpy\ILSpy.csproj" />
  </ItemGroup>

  <ItemGroup>
    <Compile Include="Commands\AssemblyReferenceForILSpy.cs" />
    <Compile Include="Commands\NuGetReferenceForILSpy.cs" />
    <Compile Include="Commands\ProjectItemForILSpy.cs" />
    <Compile Include="Commands\ProjectReferenceForILSpy.cs" />
    <Compile Include="Commands\OpenCodeItemCommand.cs" />
    <Compile Include="Commands\OpenILSpyCommand.cs" />
    <Compile Include="Commands\OpenProjectOutputCommand.cs" />
    <Compile Include="Commands\OpenReferenceCommand.cs" />
    <Compile Include="Guids.cs" />
    <Compile Include="ILSpyInstance.cs" />
    <Compile Include="Resources.Designer.cs">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>Resources.resx</DependentUpon>
    </Compile>
    <Compile Include="GlobalSuppressions.cs" />
    <Compile Include="ILSpyAddInPackage.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="PkgCmdID.cs" />
    <Compile Include="SyntaxNodeExtensions.cs" />
    <Compile Include="AssemblyFileFinder.cs" />
    <Compile Include="Utils.cs" />
  </ItemGroup>

  <ItemGroup>
    <EmbeddedResource Include="Resources.resx">
      <Generator>ResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
      <SubType>Designer</SubType>
    </EmbeddedResource>
    <EmbeddedResource Include="VSPackage.resx">
      <MergeWithCTO>true</MergeWithCTO>
      <ManifestResourceName>VSPackage</ManifestResourceName>
    </EmbeddedResource>
  </ItemGroup>

  <!--
  BEGIN WORKAROUND:
  Nuget packages do not get added to the vsix automatically.
  (related to https://github.com/icsharpcode/ILSpy/issues/511)
  -->
  <PropertyGroup>
    <ILSpyBuildPath>..\ILSpy\bin\$(Configuration)\$(TargetFramework)\</ILSpyBuildPath>
  </PropertyGroup>

  <ItemGroup>
    <AdditionalDependencies Include="$(ILSpyBuildPath)System.Collections.Immutable.dll" />
    <AdditionalDependencies Include="$(ILSpyBuildPath)System.Composition.AttributedModel.dll" />
    <AdditionalDependencies Include="$(ILSpyBuildPath)System.Composition.Convention.dll" />
    <AdditionalDependencies Include="$(ILSpyBuildPath)System.Composition.Hosting.dll" />
    <AdditionalDependencies Include="$(ILSpyBuildPath)System.Composition.Runtime.dll" />
    <AdditionalDependencies Include="$(ILSpyBuildPath)System.Composition.TypedParts.dll" />
    <AdditionalDependencies Include="$(ILSpyBuildPath)System.Threading.Tasks.Dataflow.dll" />
    <AdditionalDependencies Include="$(ILSpyBuildPath)ICSharpCode.AvalonEdit.dll" />
    <AdditionalDependencies Include="$(ILSpyBuildPath)Humanizer.dll" />
    <AdditionalDependencies Include="$(ILSpyBuildPath)System.Reflection.Metadata.dll" />
    <AdditionalDependencies Include="$(ILSpyBuildPath)Microsoft.VisualStudio.Composition.dll" />
    <AdditionalDependencies Include="$(ILSpyBuildPath)Microsoft.VisualStudio.Validation.dll" />
    <AdditionalDependencies Include="$(ILSpyBuildPath)Mono.Cecil.dll" />
    <AdditionalDependencies Include="$(ILSpyBuildPath)Mono.Cecil.Pdb.dll" />
    <AdditionalDependencies Include="$(ILSpyBuildPath)ILSpy.BamlDecompiler.Plugin.dll" />
    <AdditionalDependencies Include="$(ILSpyBuildPath)Microsoft.DiaSymReader*.dll" />
  	<AdditionalDependencies Include="$(ILSpyBuildPath)OSVersionHelper.dll" />
    <AdditionalDependencies Include="$(ILSpyBuildPath)Xceed.Wpf.AvalonDock.dll" />
    <AdditionalDependencies Include="$(ILSpyBuildPath)DataGridExtensions.dll" />  
    <AdditionalDependencies Include="$(ILSpyBuildPath)Iced.dll" />  
    <AdditionalDependencies Include="$(ILSpyBuildPath)ILCompiler.Reflection.ReadyToRun.dll" />  
    <AdditionalDependencies Include="$(ILSpyBuildPath)ILSpy.ReadyToRun.Plugin.dll" />  
  </ItemGroup>

  <ItemGroup>
    <Content Include="@(AdditionalDependencies)">
      <IncludeInVSIX>true</IncludeInVSIX>
      <VSIXSubPath>\</VSIXSubPath>
    </Content>
  </ItemGroup>
  <!-- END WORKAROUND -->

  <ItemGroup>
    <None Include="ILSpyAddIn.vsct" />
    <None Include="source.extension.vsixmanifest.template" />
    <None Include="source.extension.vsixmanifest">
      <SubType>Designer</SubType>
    </None>
  </ItemGroup>

  <ItemGroup>
    <None Include="Key.snk" />
  </ItemGroup>

  <ItemGroup>
    <VSCTCompile Include="ILSpyAddIn.vsct">
      <ResourceName>Menus.ctmenu</ResourceName>
      <SubType>Designer</SubType>
    </VSCTCompile>
  </ItemGroup>

  <ItemGroup>
    <None Include="Properties\launchSettings.json" />
    <None Include="Resources\Images.png" />
  </ItemGroup>

  <ItemGroup>
    <Content Include="ILSpy-Large.ico">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
      <IncludeInVSIX>true</IncludeInVSIX>
    </Content>
    <Content Include="..\doc\license.txt" Link="license.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
      <IncludeInVSIX>true</IncludeInVSIX>
    </Content>
    <Content Include="Resources\Package.ico" />
  </ItemGroup>

  <PropertyGroup>
    <UseCodebase>true</UseCodebase>
  </PropertyGroup>

  <Import Sdk="Microsoft.NET.Sdk" Project="Sdk.targets" />

  <Import Project="$(VSToolsPath)\VSSDK\Microsoft.VsSDK.targets" Condition="Exists('$(VSToolsPath)\VSSDK\Microsoft.VsSDK.targets')" />

</Project>