<?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>
    <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="..\ICSharpCode.Decompiler\ICSharpCode.Decompiler.csproj" />
    <ProjectReference Include="..\ILSpy\ILSpy.csproj">
      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
      <Private>false</Private>
    </ProjectReference>
  </ItemGroup>

  <ItemGroup>
    <Compile Include="..\ILSpy\NativeMethods.cs" Link="NativeMethods.cs" />
    <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.en-US.resx">
      <MergeWithCTO>true</MergeWithCTO>
      <LogicalName>VSPackage.en-US.resources</LogicalName>
      <DependentUpon>VSPackage.resx</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="VSPackage.resx">
      <MergeWithCTO>true</MergeWithCTO>
      <ManifestResourceName>VSPackage</ManifestResourceName>
    </EmbeddedResource>
    <EmbeddedResource Include="VSPackage.zh-Hans.resx">
      <MergeWithCTO>true</MergeWithCTO>
      <LogicalName>VSPackage.zh-Hans.resources</LogicalName>
      <DependentUpon>VSPackage.resx</DependentUpon>
    </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>
    <Content Include="$(OutputPath)Mono.Cecil.dll">
      <IncludeInVSIX>true</IncludeInVSIX>
      <VSIXSubPath>\</VSIXSubPath>
    </Content>
  </ItemGroup>
  <!-- END WORKAROUND -->

  <ItemGroup>
    <Content Include="$(ILSpyBuildPath)*.dll;$(ILSpyBuildPath)ILSpy.exe;$(ILSpyBuildPath)ILSpy.exe.config">
      <IncludeInVSIX>true</IncludeInVSIX>
      <VSIXSubPath>\ILSpy</VSIXSubPath>
    </Content>
  </ItemGroup>

  <ItemGroup>
    <Content Include="$(ILSpyBuildPath)zh-Hans\ILSpy.resources.dll;$(ILSpyBuildPath)zh-Hans\ILSpy.ReadyToRun.Plugin.resources.dll;">
      <IncludeInVSIX>true</IncludeInVSIX>
      <VSIXSubPath>\ILSpy\zh-Hans\</VSIXSubPath>
    </Content>
  </ItemGroup>

  <ItemGroup>
    <None Include="source.extension.vsixmanifest.template" />
    <None Include="source.extension.vsixmanifest">
      <SubType>Designer</SubType>
    </None>
  </ItemGroup>
 <ItemGroup>
   <None Include="ILSpyAddIn.vsct">
     <SubType>Designer</SubType>
   </None>
   <Content Include="zh-Hans\extension.vsixlangpack">
     <IncludeInVSIX>true</IncludeInVSIX>
     <CopyToOutputDirectory>Always</CopyToOutputDirectory>
   </Content>
    <VSCTCompile Include="ILSpyAddIn.en-US.vsct">
      <ResourceName>Menus.ctmenu</ResourceName>
      <SubType>Designer</SubType>
      <DependentUpon>ILSpyAddIn.vsct</DependentUpon>
    </VSCTCompile>
    <VSCTCompile Include="ILSpyAddIn.zh-Hans.vsct">
      <ResourceName>Menus.ctmenu</ResourceName>
      <SubType>Designer</SubType>
      <DependentUpon>ILSpyAddIn.vsct</DependentUpon>
    </VSCTCompile>
  </ItemGroup>
  <ItemGroup>
    <None Include="Key.snk" />
  </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>