编译策略: “入口程序、硬件与 Native 依赖项目固定 x64,纯托管类库保持 Any CPU”的平台策略

This commit is contained in:
zhengxuan.zhang
2026-06-05 21:33:56 +08:00
parent a216d48bd5
commit 7683596c17
24 changed files with 115 additions and 93 deletions
+34 -7
View File
@@ -136,30 +136,57 @@ XplorePlane/
### 构建与输出
本解决方案采用“入口程序、硬件与 Native 依赖项目固定 x64,纯托管类库保持 Any CPU”的平台策略,避免一刀切把所有类库强制为 x64。
[ReleaseFiles/](ReleaseFiles/) 是发布文件快照,不是普通编译输出目录;清理或更新运行依赖时需要同步检查该目录。
```bash
# Debug
dotnet build XplorePlane.sln -c Debug
dotnet build XplorePlane.sln -c Debug -p:Platform=x64
# Release
dotnet build XplorePlane.sln -c Release
dotnet build XplorePlane.sln -c Release -p:Platform=x64
# 只构建主程序
dotnet build XplorePlane/XplorePlane.csproj -c Release
dotnet build XplorePlane/XplorePlane.csproj -c Release -p:Platform=x64
```
当前主程序输出目录由 [XplorePlane/XplorePlane.csproj](XplorePlane/XplorePlane.csproj) 配置为:
当前解决方案面向 x64 平台,主程序输出目录由 [XplorePlane/XplorePlane.csproj](XplorePlane/XplorePlane.csproj) 配置为:
```text
D:\XplorePlane\bin\<Configuration>\net8.0-windows\win-x64\
D:\XplorePlane\bin\<Platform>\<Configuration>\net8.0-windows\win-x64\
```
当前 Debug 生成目录格式:
```text
D:\XplorePlane\bin\x64\Debug\net8.0-windows\win-x64\
```
当前生成目录结构:
```text
D:\XplorePlane\bin\
└── x64\
└── Debug\
└── net8.0-windows\
└── win-x64\
├── XplorePlane.exe
├── XplorePlane.dll
├── XplorePlane.dll.config
├── Host\ # Comet Host 输出目录
├── runtimes\ # NuGet / runtime 原生依赖
└── ... # 其他程序集、资源与运行依赖
```
Comet Host 编译后会复制到当前主程序输出目录的 `Host/` 子目录:
```text
D:\XplorePlane\bin\<Configuration>\net8.0-windows\win-x64\Host\
D:\XplorePlane\bin\x64\Debug\net8.0-windows\win-x64\Host\
```
[ReleaseFiles/](ReleaseFiles/) 是发布文件快照,不是普通编译输出目录;清理或更新运行依赖时需要同步检查该目录。
### 平台配置策略
### TO-DO List
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+2
View File
@@ -3,6 +3,8 @@
<PropertyGroup>
<TargetFramework>net8.0-windows</TargetFramework>
<UseWPF>true</UseWPF>
<Platforms>x64</Platforms>
<PlatformTarget>x64</PlatformTarget>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>XP.Camera</RootNamespace>
@@ -1,7 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-windows7.0</TargetFramework>
<UseWPF>true</UseWPF>
<Platforms>x64</Platforms>
<PlatformTarget>x64</PlatformTarget>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
@@ -1,7 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-windows7.0</TargetFramework>
<UseWPF>true</UseWPF>
<Platforms>x64</Platforms>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Prism.Wpf" Version="9.0.537" />
@@ -1,7 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-windows7.0</TargetFramework>
<UseWPF>true</UseWPF>
<Platforms>x64</Platforms>
<PlatformTarget>x64</PlatformTarget>
<OutputType>WinExe</OutputType>
<ApplicationIcon>XplorerPlane.ico</ApplicationIcon>
</PropertyGroup>
+3 -1
View File
@@ -1,7 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-windows7.0</TargetFramework>
<UseWPF>true</UseWPF>
<Platforms>x64</Platforms>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Prism.Wpf" Version="9.0.537" />
@@ -3,7 +3,7 @@
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<Platform Condition=" '$(Platform)' == '' ">x64</Platform>
<ProjectGuid>{B8F5E3A1-7C2D-4E9F-A1B3-6D8E4F2C9A01}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
@@ -14,22 +14,24 @@
<Deterministic>true</Deterministic>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>Comet.Host.Icon.ico</ApplicationIcon>
@@ -104,7 +106,7 @@
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- 编译后将 Host 进程及其所有依赖复制到当前主程序输出目录的 Host 子目录 -->
<PropertyGroup>
<PostBuildEvent>if not exist "$(SolutionDir)bin\$(ConfigurationName)\net8.0-windows\win-x64\Host\" mkdir "$(SolutionDir)bin\$(ConfigurationName)\net8.0-windows\win-x64\Host\"
xcopy /Y /D "$(TargetDir)*.*" "$(SolutionDir)bin\$(ConfigurationName)\net8.0-windows\win-x64\Host\"</PostBuildEvent>
<PostBuildEvent>if not exist "$(SolutionDir)bin\$(Platform)\$(ConfigurationName)\net8.0-windows\win-x64\Host\" mkdir "$(SolutionDir)bin\$(Platform)\$(ConfigurationName)\net8.0-windows\win-x64\Host\"
xcopy /Y /D "$(TargetDir)*.*" "$(SolutionDir)bin\$(Platform)\$(ConfigurationName)\net8.0-windows\win-x64\Host\"</PostBuildEvent>
</PropertyGroup>
</Project>
@@ -1,7 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-windows7.0</TargetFramework>
<UseWPF>true</UseWPF>
<Platforms>x64</Platforms>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Prism.Wpf" Version="9.0.537" />
@@ -2,6 +2,8 @@
<PropertyGroup>
<TargetFramework>net8.0-windows</TargetFramework>
<Platforms>x64</Platforms>
<PlatformTarget>x64</PlatformTarget>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+34 -33
View File
@@ -1,4 +1,4 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.14.37203.1
@@ -77,18 +77,19 @@ Global
{07978DB9-4B88-4F42-9054-73992742BD6A}.Debug|x64.ActiveCfg = Debug|x64
{07978DB9-4B88-4F42-9054-73992742BD6A}.Debug|x64.Build.0 = Debug|x64
{07978DB9-4B88-4F42-9054-73992742BD6A}.Release|x64.ActiveCfg = Release|x64
{82762CDE-48CC-4E28-ABEC-1FC752BACEF4}.Debug|x64.ActiveCfg = Debug|Any CPU
{82762CDE-48CC-4E28-ABEC-1FC752BACEF4}.Debug|x64.Build.0 = Debug|Any CPU
{82762CDE-48CC-4E28-ABEC-1FC752BACEF4}.Release|x64.ActiveCfg = Release|Any CPU
{82762CDE-48CC-4E28-ABEC-1FC752BACEF4}.Release|x64.Build.0 = Release|Any CPU
{07978DB9-4B88-4F42-9054-73992742BD6A}.Release|x64.Build.0 = Release|x64
{82762CDE-48CC-4E28-ABEC-1FC752BACEF4}.Debug|x64.ActiveCfg = Debug|x64
{82762CDE-48CC-4E28-ABEC-1FC752BACEF4}.Debug|x64.Build.0 = Debug|x64
{82762CDE-48CC-4E28-ABEC-1FC752BACEF4}.Release|x64.ActiveCfg = Release|x64
{82762CDE-48CC-4E28-ABEC-1FC752BACEF4}.Release|x64.Build.0 = Release|x64
{01EDC1D8-F6BC-2677-AE59-89BA3FC2C74F}.Debug|x64.ActiveCfg = Debug|Any CPU
{01EDC1D8-F6BC-2677-AE59-89BA3FC2C74F}.Debug|x64.Build.0 = Debug|Any CPU
{01EDC1D8-F6BC-2677-AE59-89BA3FC2C74F}.Release|x64.ActiveCfg = Release|Any CPU
{01EDC1D8-F6BC-2677-AE59-89BA3FC2C74F}.Release|x64.Build.0 = Release|Any CPU
{2687E12E-3053-E1C6-5268-E4FF547EC212}.Debug|x64.ActiveCfg = Debug|Any CPU
{2687E12E-3053-E1C6-5268-E4FF547EC212}.Debug|x64.Build.0 = Debug|Any CPU
{2687E12E-3053-E1C6-5268-E4FF547EC212}.Release|x64.ActiveCfg = Release|Any CPU
{2687E12E-3053-E1C6-5268-E4FF547EC212}.Release|x64.Build.0 = Release|Any CPU
{2687E12E-3053-E1C6-5268-E4FF547EC212}.Debug|x64.ActiveCfg = Debug|x64
{2687E12E-3053-E1C6-5268-E4FF547EC212}.Debug|x64.Build.0 = Debug|x64
{2687E12E-3053-E1C6-5268-E4FF547EC212}.Release|x64.ActiveCfg = Release|x64
{2687E12E-3053-E1C6-5268-E4FF547EC212}.Release|x64.Build.0 = Release|x64
{9460CF45-8A25-9770-03AF-4602A2FFF016}.Debug|x64.ActiveCfg = Debug|Any CPU
{9460CF45-8A25-9770-03AF-4602A2FFF016}.Debug|x64.Build.0 = Debug|Any CPU
{9460CF45-8A25-9770-03AF-4602A2FFF016}.Release|x64.ActiveCfg = Release|Any CPU
@@ -101,30 +102,30 @@ Global
{866A7353-C822-114E-48DE-26E8A3E17F9E}.Debug|x64.Build.0 = Debug|Any CPU
{866A7353-C822-114E-48DE-26E8A3E17F9E}.Release|x64.ActiveCfg = Release|Any CPU
{866A7353-C822-114E-48DE-26E8A3E17F9E}.Release|x64.Build.0 = Release|Any CPU
{760D5EAC-795A-6666-1BE0-E30B1B2822C3}.Debug|x64.ActiveCfg = Debug|Any CPU
{760D5EAC-795A-6666-1BE0-E30B1B2822C3}.Debug|x64.Build.0 = Debug|Any CPU
{760D5EAC-795A-6666-1BE0-E30B1B2822C3}.Release|x64.ActiveCfg = Release|Any CPU
{760D5EAC-795A-6666-1BE0-E30B1B2822C3}.Release|x64.Build.0 = Release|Any CPU
{9391C622-4552-8081-A1E8-B3447E0E7A4F}.Debug|x64.ActiveCfg = Debug|Any CPU
{9391C622-4552-8081-A1E8-B3447E0E7A4F}.Debug|x64.Build.0 = Debug|Any CPU
{9391C622-4552-8081-A1E8-B3447E0E7A4F}.Release|x64.ActiveCfg = Release|Any CPU
{9391C622-4552-8081-A1E8-B3447E0E7A4F}.Release|x64.Build.0 = Release|Any CPU
{9E9FB4E7-22F9-D475-D9DA-0D647BF6DFD9}.Debug|x64.ActiveCfg = Debug|Any CPU
{9E9FB4E7-22F9-D475-D9DA-0D647BF6DFD9}.Debug|x64.Build.0 = Debug|Any CPU
{9E9FB4E7-22F9-D475-D9DA-0D647BF6DFD9}.Release|x64.ActiveCfg = Release|Any CPU
{9E9FB4E7-22F9-D475-D9DA-0D647BF6DFD9}.Release|x64.Build.0 = Release|Any CPU
{C0635DDF-1BCC-2F86-3BA1-12E0469F114B}.Debug|x64.ActiveCfg = Debug|Any CPU
{C0635DDF-1BCC-2F86-3BA1-12E0469F114B}.Debug|x64.Build.0 = Debug|Any CPU
{C0635DDF-1BCC-2F86-3BA1-12E0469F114B}.Release|x64.ActiveCfg = Release|Any CPU
{C0635DDF-1BCC-2F86-3BA1-12E0469F114B}.Release|x64.Build.0 = Release|Any CPU
{67D180E8-AB8F-FF62-ED46-270803B8F713}.Debug|x64.ActiveCfg = Debug|Any CPU
{67D180E8-AB8F-FF62-ED46-270803B8F713}.Debug|x64.Build.0 = Debug|Any CPU
{67D180E8-AB8F-FF62-ED46-270803B8F713}.Release|x64.ActiveCfg = Release|Any CPU
{67D180E8-AB8F-FF62-ED46-270803B8F713}.Release|x64.Build.0 = Release|Any CPU
{B8F5E3A1-7C2D-4E9F-A1B3-6D8E4F2C9A01}.Debug|x64.ActiveCfg = Debug|Any CPU
{B8F5E3A1-7C2D-4E9F-A1B3-6D8E4F2C9A01}.Debug|x64.Build.0 = Debug|Any CPU
{B8F5E3A1-7C2D-4E9F-A1B3-6D8E4F2C9A01}.Release|x64.ActiveCfg = Release|Any CPU
{B8F5E3A1-7C2D-4E9F-A1B3-6D8E4F2C9A01}.Release|x64.Build.0 = Release|Any CPU
{760D5EAC-795A-6666-1BE0-E30B1B2822C3}.Debug|x64.ActiveCfg = Debug|x64
{760D5EAC-795A-6666-1BE0-E30B1B2822C3}.Debug|x64.Build.0 = Debug|x64
{760D5EAC-795A-6666-1BE0-E30B1B2822C3}.Release|x64.ActiveCfg = Release|x64
{760D5EAC-795A-6666-1BE0-E30B1B2822C3}.Release|x64.Build.0 = Release|x64
{9391C622-4552-8081-A1E8-B3447E0E7A4F}.Debug|x64.ActiveCfg = Debug|x64
{9391C622-4552-8081-A1E8-B3447E0E7A4F}.Debug|x64.Build.0 = Debug|x64
{9391C622-4552-8081-A1E8-B3447E0E7A4F}.Release|x64.ActiveCfg = Release|x64
{9391C622-4552-8081-A1E8-B3447E0E7A4F}.Release|x64.Build.0 = Release|x64
{9E9FB4E7-22F9-D475-D9DA-0D647BF6DFD9}.Debug|x64.ActiveCfg = Debug|x64
{9E9FB4E7-22F9-D475-D9DA-0D647BF6DFD9}.Debug|x64.Build.0 = Debug|x64
{9E9FB4E7-22F9-D475-D9DA-0D647BF6DFD9}.Release|x64.ActiveCfg = Release|x64
{9E9FB4E7-22F9-D475-D9DA-0D647BF6DFD9}.Release|x64.Build.0 = Release|x64
{C0635DDF-1BCC-2F86-3BA1-12E0469F114B}.Debug|x64.ActiveCfg = Debug|x64
{C0635DDF-1BCC-2F86-3BA1-12E0469F114B}.Debug|x64.Build.0 = Debug|x64
{C0635DDF-1BCC-2F86-3BA1-12E0469F114B}.Release|x64.ActiveCfg = Release|x64
{C0635DDF-1BCC-2F86-3BA1-12E0469F114B}.Release|x64.Build.0 = Release|x64
{67D180E8-AB8F-FF62-ED46-270803B8F713}.Debug|x64.ActiveCfg = Debug|x64
{67D180E8-AB8F-FF62-ED46-270803B8F713}.Debug|x64.Build.0 = Debug|x64
{67D180E8-AB8F-FF62-ED46-270803B8F713}.Release|x64.ActiveCfg = Release|x64
{67D180E8-AB8F-FF62-ED46-270803B8F713}.Release|x64.Build.0 = Release|x64
{B8F5E3A1-7C2D-4E9F-A1B3-6D8E4F2C9A01}.Debug|x64.ActiveCfg = Debug|x64
{B8F5E3A1-7C2D-4E9F-A1B3-6D8E4F2C9A01}.Debug|x64.Build.0 = Debug|x64
{B8F5E3A1-7C2D-4E9F-A1B3-6D8E4F2C9A01}.Release|x64.ActiveCfg = Release|x64
{B8F5E3A1-7C2D-4E9F-A1B3-6D8E4F2C9A01}.Release|x64.Build.0 = Release|x64
{6170AF9F-A792-6BDC-4E25-072EA87FAA15}.Debug|x64.ActiveCfg = Debug|Any CPU
{6170AF9F-A792-6BDC-4E25-072EA87FAA15}.Debug|x64.Build.0 = Debug|Any CPU
{6170AF9F-A792-6BDC-4E25-072EA87FAA15}.Release|x64.ActiveCfg = Release|Any CPU
+19 -41
View File
@@ -7,18 +7,18 @@
<RootNamespace>XplorePlane</RootNamespace>
<AssemblyName>XplorePlane</AssemblyName>
<ApplicationIcon>XplorerPlane.ico</ApplicationIcon>
<Platforms>x64;AnyCPU</Platforms>
<Platforms>x64</Platforms>
</PropertyGroup>
<!-- 允许测试项目访问 internal 成员 -->
<ItemGroup>
<InternalsVisibleTo Include="XplorePlane.Tests" />
</ItemGroup>
<ItemGroup>
<None Remove="XplorePlane.csproj.Backup.tmp" />
</ItemGroup>
<ItemGroup>
<Page Remove="MainWindow.xaml" />
<Page Remove="Views\ImageProcessing\ImageProcessingPanelView.xaml" />
@@ -27,12 +27,12 @@
<Page Remove="Views\Main\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" />
@@ -45,14 +45,14 @@
<PackageReference Include="Emgu.CV.runtime.windows" Version="4.10.0.5680" />
<PackageReference Include="Emgu.CV.Bitmap" Version="4.10.0.5680" />
</ItemGroup>
<!-- DLL 引用 -->
<ItemGroup>
<!-- 硬件库 DLL 引用 -->
<!-- 原生依赖库引用 -->
<Reference Include="BR.AN.PviServices">
<HintPath>Libs\Native\BR.AN.PviServices.dll</HintPath>
<HintPath>..\ExternalLibraries\BR.AN.PviServices.dll</HintPath>
<Private>True</Private>
</Reference>
@@ -61,14 +61,14 @@
<HintPath>..\ExternalLibraries\MvCameraControl.Net.dll</HintPath>
<Private>true</Private>
</Reference>
</ItemGroup>
<!-- Telerik UI for WPF -->
<PropertyGroup>
<TelerikDir>..\ExternalLibraries\Telerik</TelerikDir>
<BaseOutputPath>..\bin\</BaseOutputPath>
<PlatformTarget>AnyCPU</PlatformTarget>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="Telerik.Windows.Controls">
@@ -120,40 +120,13 @@
<HintPath>$(TelerikDir)\Telerik.Windows.Zip.dll</HintPath>
</Reference>
</ItemGroup>
<!-- 确保图标资源嵌入 -->
<ItemGroup>
<Resource Include="Assets\Icons\*.png" />
</ItemGroup>
<!-- 确保 DLL 和原生库复制到输出目录 -->
<ItemGroup>
<!-- 硬件库 DLL -->
<None Include="Libs\Hardware\*.dll" Condition="Exists('Libs\Hardware')">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Libs\Hardware\*.pdb" Condition="Exists('Libs\Hardware')">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<!-- 原生依赖库 -->
<None Include="Libs\Native\*.dll" Condition="Exists('Libs\Native')">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<!-- 本地化卫星程序集 -->
<None Include="Libs\Hardware\zh-CN\*.dll" Condition="Exists('Libs\Hardware\zh-CN')">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Link>Libs\Hardware\zh-CN\%(Filename)%(Extension)</Link>
</None>
<None Include="Libs\Hardware\en-US\*.dll" Condition="Exists('Libs\Hardware\en-US')">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Link>Libs\Hardware\en-US\%(Filename)%(Extension)</Link>
</None>
<None Include="Libs\Hardware\zh-TW\*.dll" Condition="Exists('Libs\Hardware\zh-TW')">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Link>Libs\Hardware\zh-TW\%(Filename)%(Extension)</Link>
</None>
<Compile Remove="Views\Hardware\**" />
<EmbeddedResource Remove="Views\Hardware\**" />
<None Remove="Views\Hardware\**" />
@@ -166,9 +139,9 @@
<Content Include="XplorerPlane.ico">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Resource Include="XplorerPlane.ico" />
<!-- 配置文件 -->
<None Update="App.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
@@ -189,5 +162,10 @@
<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" />
<Exec Command="if exist &quot;$(TargetDir)Libs\Hardware\en-US&quot; rmdir &quot;$(TargetDir)Libs\Hardware\en-US&quot;" IgnoreExitCode="true" />
<Exec Command="if exist &quot;$(TargetDir)Libs\Hardware\zh-CN&quot; rmdir &quot;$(TargetDir)Libs\Hardware\zh-CN&quot;" IgnoreExitCode="true" />
<Exec Command="if exist &quot;$(TargetDir)Libs\Hardware\zh-TW&quot; rmdir &quot;$(TargetDir)Libs\Hardware\zh-TW&quot;" IgnoreExitCode="true" />
<Exec Command="if exist &quot;$(TargetDir)Libs\Hardware&quot; rmdir &quot;$(TargetDir)Libs\Hardware&quot;" IgnoreExitCode="true" />
<Exec Command="if exist &quot;$(TargetDir)Libs&quot; rmdir &quot;$(TargetDir)Libs&quot;" IgnoreExitCode="true" />
</Target>
</Project>