Files
XplorePlane/XplorePlane/XplorePlane.csproj
T
zhengxuan.zhang e38b6bf9fc 升级版本号
2026-08-11 16:10:05 +08:00

213 lines
10 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows</TargetFramework>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<UseWPF>true</UseWPF>
<StartupObject>XplorePlane.Program</StartupObject>
<RootNamespace>XplorePlane</RootNamespace>
<AssemblyName>XplorePlane</AssemblyName>
<Product>XplorePlane</Product>
<Company>Hexagon</Company>
<ApplicationIcon>XplorerPlane.ico</ApplicationIcon>
<Platforms>x64</Platforms>
<PlatformTarget>x64</PlatformTarget>
<!-- 统一启用 Nullable 注解;空值流分析按模块逐步推进。 -->
<Nullable>annotations</Nullable>
<!-- 发布版本号唯一来源:build-release.ps1 通过 dotnet msbuild -getProperty:Version 读取此值,
打 Velopack 包时不再需要手动传版本号。
发布新版本前需先手动递增此值,与 Releases/RELEASES 中的最新版本保持连续。 -->
<Version>1.0.1</Version>
<InformationalVersion>$(Version)</InformationalVersion>
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
<!-- 代码中已大量使用 ? 可为空注解,压制 CS8632 而非全局启用 Nullable
以避免因 ? 使用不完整引发的连锁编译错误。未来统一清理后再整体开启。 -->
</PropertyGroup>
<Target Name="ResolveGitVersion" BeforeTargets="GetAssemblyVersion;GenerateAssemblyInfo"
Condition="'$(GitCommit)' == ''">
<Exec Command="git rev-parse --short=7 HEAD"
WorkingDirectory="$(MSBuildProjectDirectory)"
ConsoleToMSBuild="true" IgnoreExitCode="true">
<Output TaskParameter="ConsoleOutput" PropertyName="_GitCommitOutput" />
</Exec>
<PropertyGroup>
<GitCommit>$([System.String]::Copy('$(_GitCommitOutput)').Trim())</GitCommit>
<GitCommit Condition="'$(GitCommit)' == ''">unknown</GitCommit>
<InformationalVersion>$(Version)$(GitCommit)</InformationalVersion>
</PropertyGroup>
</Target>
<!-- 允许测试项目访问 internal 成员 -->
<ItemGroup>
<InternalsVisibleTo Include="XplorePlane.Tests" />
</ItemGroup>
<ItemGroup>
<None Remove="XplorePlane.csproj.Backup.tmp" />
</ItemGroup>
<!-- 嵌入字体:把授权后的方正黑体简体 ttf 放入 Resources\Fonts\ 即自动编译为 Resource
随后把 Themes\NovaTypography.xaml 中 NovaFontFamily 改为
/Resources/Fonts/#方正黑体简体, Microsoft YaHei UI, Segoe UI 即可全应用生效
NovaPalette.cs 会读取同一资源同步给 Telerik 控件)。
目录当前为空,glob 匹配不到文件时不影响构建。 -->
<ItemGroup>
<Resource Include="Resources\Fonts\**\*.ttf" />
<Resource Include="Resources\Fonts\**\*.otf" />
</ItemGroup>
<ItemGroup>
<Page Remove="MainWindow.xaml" />
<Page Remove="Views\ImageProcessing\ImageProcessingPanelView.xaml" />
<Page Remove="Views\ImageProcessing\ImageProcessingWindow.xaml" />
<Page Remove="Views\ImageProcessing\PipelineEditorWindow.xaml" />
<Page Remove="deprecated\MainWindowB.xaml" />
<Page Remove="Views\Main\NavigationPanelView.xaml" />
</ItemGroup>
<!-- NuGet 包引用 -->
<ItemGroup>
<PackageReference Include="Prism.DryIoc" Version="9.0.537" />
<PackageReference Include="Fluent.Ribbon" Version="9.0.0" />
<!-- 硬件库依赖的 NuGet 包 -->
<PackageReference Include="Serilog" Version="4.3.1" />
<PackageReference Include="Serilog.Sinks.Console" Version="6.1.1" />
<PackageReference Include="Serilog.Sinks.File" Version="7.0.0" />
<PackageReference Include="Serilog.Sinks.Debug" Version="3.0.0" />
<PackageReference Include="System.Data.SQLite" Version="1.0.118" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="10.0.3" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="8.0.0" />
<PackageReference Include="Emgu.CV" Version="4.10.0.5680" />
<PackageReference Include="Emgu.CV.runtime.windows" Version="4.10.0.5680" />
<PackageReference Include="Emgu.CV.Bitmap" Version="4.10.0.5680" />
<PackageReference Include="Velopack" Version="1.2.0" />
</ItemGroup>
<!-- DLL 引用 -->
<ItemGroup>
<!-- 海康威视相机 SDK (.NET Framework 4.0) -->
<Reference Include="MvCameraControl.Net">
<HintPath>..\ExternalLibraries\MvCameraControl.Net.dll</HintPath>
<Private>true</Private>
</Reference>
</ItemGroup>
<!-- Telerik UI for WPF -->
<PropertyGroup>
<TelerikDir>..\ExternalLibraries\Telerik</TelerikDir>
<BaseOutputPath>..\bin\</BaseOutputPath>
</PropertyGroup>
<ItemGroup>
<Reference Include="Telerik.Windows.Controls">
<HintPath>$(TelerikDir)\Telerik.Windows.Controls.dll</HintPath>
</Reference>
<Reference Include="Telerik.Windows.Controls.Chart">
<HintPath>$(TelerikDir)\Telerik.Windows.Controls.Chart.dll</HintPath>
</Reference>
<Reference Include="Telerik.Windows.Controls.Data">
<HintPath>$(TelerikDir)\Telerik.Windows.Controls.Data.dll</HintPath>
</Reference>
<Reference Include="Telerik.Windows.Controls.FixedDocumentViewers">
<HintPath>..\ExternalLibraries\Telerik\Telerik.Windows.Controls.FixedDocumentViewers.dll</HintPath>
</Reference>
<Reference Include="Telerik.Windows.Controls.FixedDocumentViewersUI">
<HintPath>..\ExternalLibraries\Telerik\Telerik.Windows.Controls.FixedDocumentViewersUI.dll</HintPath>
</Reference>
<Reference Include="Telerik.Windows.Controls.GridView">
<HintPath>$(TelerikDir)\Telerik.Windows.Controls.GridView.dll</HintPath>
</Reference>
<Reference Include="Telerik.Windows.Controls.Input">
<HintPath>$(TelerikDir)\Telerik.Windows.Controls.Input.dll</HintPath>
</Reference>
<Reference Include="Telerik.Windows.Controls.Navigation">
<HintPath>$(TelerikDir)\Telerik.Windows.Controls.Navigation.dll</HintPath>
</Reference>
<Reference Include="Telerik.Windows.Controls.RibbonView">
<HintPath>$(TelerikDir)\Telerik.Windows.Controls.RibbonView.dll</HintPath>
</Reference>
<Reference Include="Telerik.Windows.Controls.Spreadsheet">
<HintPath>$(TelerikDir)\Telerik.Windows.Controls.Spreadsheet.dll</HintPath>
</Reference>
<Reference Include="Telerik.Windows.Controls.SpreadsheetUI">
<HintPath>$(TelerikDir)\Telerik.Windows.Controls.SpreadsheetUI.dll</HintPath>
</Reference>
<Reference Include="Telerik.Windows.Data">
<HintPath>$(TelerikDir)\Telerik.Windows.Data.dll</HintPath>
</Reference>
<Reference Include="Telerik.Windows.Documents.Core">
<HintPath>$(TelerikDir)\Telerik.Windows.Documents.Core.dll</HintPath>
</Reference>
<Reference Include="Telerik.Windows.Documents.Fixed">
<HintPath>$(TelerikDir)\Telerik.Windows.Documents.Fixed.dll</HintPath>
</Reference>
<Reference Include="Telerik.Windows.Documents.Spreadsheet">
<HintPath>$(TelerikDir)\Telerik.Windows.Documents.Spreadsheet.dll</HintPath>
</Reference>
<Reference Include="Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml">
<HintPath>$(TelerikDir)\Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.dll</HintPath>
</Reference>
<Reference Include="Telerik.Windows.Documents.Spreadsheet.FormatProviders.Pdf">
<HintPath>$(TelerikDir)\Telerik.Windows.Documents.Spreadsheet.FormatProviders.Pdf.dll</HintPath>
</Reference>
<Reference Include="Telerik.Windows.Zip">
<HintPath>$(TelerikDir)\Telerik.Windows.Zip.dll</HintPath>
</Reference>
</ItemGroup>
<!-- 确保图标资源嵌入 -->
<ItemGroup>
<Resource Include="Assets\Icons\*.png" />
<Resource Include="Assets\Splash_Screen.png" />
</ItemGroup>
<ItemGroup>
<Compile Remove="Deprecated\**" />
<Compile Remove="Views\Hardware\**" />
<EmbeddedResource Remove="Deprecated\**" />
<EmbeddedResource Remove="Views\Hardware\**" />
<None Remove="Deprecated\**" />
<None Remove="Views\Hardware\**" />
<Page Remove="Deprecated\**" />
<Page Remove="Views\Hardware\**" />
<Compile Remove="Views\ImageProcessing\HalfValueConverter.cs" />
<Compile Remove="Views\ImageProcessing\ImageProcessingPanelView.xaml.cs" />
<Compile Remove="Views\ImageProcessing\ImageProcessingWindow.xaml.cs" />
<Compile Remove="Views\ImageProcessing\PipelineEditorWindow.xaml.cs" />
<Compile Remove="deprecated\MainWindowB.xaml.cs" />
<Compile Remove="Views\Main\NavigationPanelView.xaml.cs" />
<Content Include="XplorerPlane.ico">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Resource Include="XplorerPlane.ico" />
<!-- 配置文件 -->
<None Update="App.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\XP.Common\XP.Common.csproj" />
<ProjectReference Include="..\XP.Hardware.Detector\XP.Hardware.Detector.csproj" />
<ProjectReference Include="..\XP.Hardware.MotionControl\XP.Hardware.MotionControl.csproj" />
<ProjectReference Include="..\XP.Hardware.RaySource\XP.Hardware.RaySource.csproj" />
<ProjectReference Include="..\XP.ImageProcessing.Processors\XP.ImageProcessing.Processors.csproj" />
<ProjectReference Include="..\XP.ImageProcessing.RoiControl\XP.ImageProcessing.RoiControl.csproj" />
<ProjectReference Include="..\XP.Camera\XP.Camera.csproj" />
<ProjectReference Include="..\XP.ReportEngine\XP.ReportEngine.csproj" />
<ProjectReference Include="..\XP.Calibration\XP.Calibration.csproj" />
<ProjectReference Include="..\XP.Scan\XP.Scan.csproj" />
</ItemGroup>
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="xcopy &quot;$(MSBuildProjectDirectory)\..\ExternalLibraries\*.*&quot; &quot;$(TargetDir)&quot; /d /y" />
<Exec Command="xcopy &quot;$(MSBuildProjectDirectory)\..\ExternalLibraries\Models&quot; &quot;$(TargetDir)Models\&quot; /d /y /i" />
</Target>
<Target Name="RemoveGeneratedRuntimeConfig" AfterTargets="PostBuild;Publish">
<Delete Files="$(TargetDir)$(AssemblyName).dll.config" />
</Target>
</Project>