fix: 自包含发布补齐 XBF/PRI 资源,修复解压后无法启动,发布 0.2.1

This commit is contained in:
2026-08-30 02:01:24 +08:00
parent f060660859
commit 7be2b00b0d
4 changed files with 23 additions and 2 deletions
+8
View File
@@ -7,6 +7,14 @@
## [Unreleased] ## [Unreleased]
## [0.2.1] - 2026-08-30
### Fixed
- 修复自包含发布包解压后无法启动(启动即崩溃 0xc000027b in Microsoft.UI.Xaml.dll):
dotnet publish 默认不会复制应用编译出的 XBF 与 OneClickRun.pri 资源,
新增发布目标在发布时自动补齐这些文件,解压后的 OneClickRun.exe 可正常运行
## [0.2.0] - 2026-08-30 ## [0.2.0] - 2026-08-30
### Added ### Added
+1 -1
View File
@@ -3,7 +3,7 @@
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Version>0.2.0</Version> <Version>0.2.1</Version>
<Product>一键运行 OneClickRun</Product> <Product>一键运行 OneClickRun</Product>
</PropertyGroup> </PropertyGroup>
</Project> </Project>
+1 -1
View File
@@ -54,7 +54,7 @@
dotnet publish src\OneClickRun.App\OneClickRun.App.csproj -c Release -r win-x64 --self-contained true -o dist\publish\win-x64 dotnet publish src\OneClickRun.App\OneClickRun.App.csproj -c Release -r win-x64 --self-contained true -o dist\publish\win-x64
# 将发布目录压缩为分发包 # 将发布目录压缩为分发包
powershell Compress-Archive -Path dist\publish\win-x64\* -DestinationPath dist\OneClickRun-0.2.0-win-x64.zip powershell Compress-Archive -Path dist\publish\win-x64\* -DestinationPath dist\OneClickRun-0.2.1-win-x64.zip
Release 发布产物位于 dist\ 目录(已加入 .gitignore);最终用户解压后直接 Release 发布产物位于 dist\ 目录(已加入 .gitignore);最终用户解压后直接
运行 OneClickRun.exe 即可,无需安装 .NET 或 Windows App SDK。 运行 OneClickRun.exe 即可,无需安装 .NET 或 Windows App SDK。
@@ -34,4 +34,17 @@
<ItemGroup> <ItemGroup>
<Content Include="Assets\**" CopyToOutputDirectory="PreserveNewest" /> <Content Include="Assets\**" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup> </ItemGroup>
<!-- dotnet publish 默认不会复制 WinUI 应用编译出的 XBF/PRI 资源,
自包含发布版会因此启动即崩溃(0xc000027b in Microsoft.UI.Xaml.dll);
发布完成后自动从构建输出补齐这些文件。 -->
<Target Name="CopyWinUIAppResourcesToPublish" AfterTargets="Publish">
<ItemGroup>
<_AppXbf Include="$(OutDir)**\*.xbf" />
<_AppPri Include="$(OutDir)$(AssemblyName).pri" />
<_PublishAppResources Include="@(_AppXbf);@(_AppPri)" />
</ItemGroup>
<Copy SourceFiles="@(_PublishAppResources)"
DestinationFiles="@(_PublishAppResources->'$(PublishDir)%(RecursiveDir)%(Filename)%(Extension)')"
SkipUnchangedFiles="true" />
</Target>
</Project> </Project>