<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<PublishAot>false</PublishAot>
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
<GenerateTargetFrameworkAttribute>false</GenerateTargetFrameworkAttribute>
<!-- Assembly and Namespace Configuration -->
<AssemblyName>excelcli</AssemblyName>
<RootNamespace>Sbroenne.ExcelMcp.CLI</RootNamespace>
<!-- CLI doesn't need XML documentation warnings - command usage is shown in console output -->
<NoWarn>$(NoWarn);CS1591</NoWarn>
<!-- Version Information -->
<Version>1.0.0</Version>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<FileVersion>1.0.0.0</FileVersion>
<!-- Package-specific properties -->
<PackageId>Sbroenne.ExcelMcp.CLI</PackageId>
<Title>ExcelMcp CLI</Title>
<Description>Command-line interface tool for automating Microsoft Excel operations using COM interop by Sbroenne. 165 operations across Power Query M code, Power Pivot DAX measures, VBA macros, PivotTables, Excel Tables, ranges, formatting, data validation, and connections. Perfect for RPA, CI/CD pipelines, scripting (PowerShell/Bash), and batch processing. Windows x64 and ARM64 support.</Description>
<PackageTags>excel;cli;powerquery;dax;power-pivot;automation;com;rpa;ci-cd;scripting;github-copilot;mcp;windows;dotnet-tool;sbroenne;excel-automation;vba;pivottables;excel-tables;batch-processing;devops</PackageTags>
<PackageReadmeFile>README.md</PackageReadmeFile>
<PackageReleaseNotes>See https://github.com/sbroenne/mcp-server-excel/releases for release notes</PackageReleaseNotes>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<IsPublishable>true</IsPublishable>
<!-- .NET Tool Configuration -->
<PackAsTool>true</PackAsTool>
<ToolCommandName>excelcli</ToolCommandName>
<!-- Package Validation -->
<EnablePackageValidation>true</EnablePackageValidation>
</PropertyGroup>
<!-- Release Build Optimizations -->
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<!-- Disable debug symbols in Release builds -->
<DebugType>none</DebugType>
<DebugSymbols>false</DebugSymbols>
<!-- Additional optimization flags -->
<Optimize>true</Optimize>
<TieredCompilation>true</TieredCompilation>
<TieredCompilationQuickJit>true</TieredCompilationQuickJit>
</PropertyGroup>
<!-- Remove XML docs and PDB files from Release output -->
<Target Name="RemoveDebugFilesFromRelease" AfterTargets="Build" Condition="'$(Configuration)' == 'Release'">
<ItemGroup>
<XmlDocsToDelete Include="$(OutputPath)**\*.xml" />
<PdbFilesToDelete Include="$(OutputPath)**\*.pdb" />
</ItemGroup>
<Delete Files="@(XmlDocsToDelete)" />
<Delete Files="@(PdbFilesToDelete)" />
<Message Text="Removed XML documentation and PDB files from Release build" Importance="high" />
</Target>
<!-- Prevent dotnet pack/publish from expecting XML docs after they're deleted -->
<Target Name="RemoveDocumentationFileFromPublish" BeforeTargets="ComputeFilesToPublish">
<ItemGroup>
<ResolvedFileToPublish Remove="@(ResolvedFileToPublish)" Condition="'%(Extension)' == '.xml'" />
<_IntermediateAssembly Remove="@(_IntermediateAssembly)" Condition="'%(Extension)' == '.xml'" />
</ItemGroup>
</Target>
<ItemGroup>
<PackageReference Include="Spectre.Console" />
<PackageReference Include="Spectre.Console.Cli" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" />
<PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<None Include="..\..\LICENSE" Pack="true" PackagePath="" />
<None Include="README.md" Pack="true" PackagePath="\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ExcelMcp.Core\ExcelMcp.Core.csproj" />
<ProjectReference Include="..\ExcelMcp.ComInterop\ExcelMcp.ComInterop.csproj" />
</ItemGroup>
<!-- Allow CLI integration tests to access internal command infrastructure -->
<ItemGroup>
<InternalsVisibleTo Include="Sbroenne.ExcelMcp.CLI.Tests" />
</ItemGroup>
</Project>