213 lines
10 KiB
XML
213 lines
10 KiB
XML
<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 "$(MSBuildProjectDirectory)\..\ExternalLibraries\*.*" "$(TargetDir)" /d /y" />
|
||
<Exec Command="xcopy "$(MSBuildProjectDirectory)\..\ExternalLibraries\Models" "$(TargetDir)Models\" /d /y /i" />
|
||
</Target>
|
||
<Target Name="RemoveGeneratedRuntimeConfig" AfterTargets="PostBuild;Publish">
|
||
<Delete Files="$(TargetDir)$(AssemblyName).dll.config" />
|
||
</Target>
|
||
</Project>
|