[Blazor] libman libraries not included in first build
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 38/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- csharp
- 领域
- build-system
调研方向
Start with the referenced Microsoft.NET.Sdk.Publish.ComputeFiles.targets target and compare it with the Blazor MAUI build using the provided binlogs. Reproduce with the csproj, libman.json, and index.html steps, then verify that a clean first build includes the generated library files without requiring a second build.
由索引模型根据 Issue 内容生成。
描述
Issue moved from dotnet/maui#6709
- Please respond to @campersau.
From @campersau on Saturday, April 30, 2022 6:31:24 PM
Description
Adding some client javascript libraries via libman does not include them in the first build.
When comparing the binlog with a blazor wasm build I can see that there is a _IncludePrePublishGeneratedContent target which is not present in the blazor maui build and thus any files which are generated under the wwwroot folder during the build are missing.
Here are the binlogs:
blazorbinlogs.zip
I only tested windows.
Steps to Reproduce
- New Blazor Maui App
- Add
<PackageReference Include="Microsoft.Web.LibraryManager.Build" Version="2.1.161" PrivateAssets="all" />to thecsproj - Add
libman.jsonwith the following content:
{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": [
{
"library": "[email protected]",
"files": [
"css/bootstrap.min.css"
],
"destination": "wwwroot/libs/bootstrap"
}
]
}
- Update
index.htmland reference<link rel="stylesheet" href="libs/bootstrap/css/bootstrap.min.css" />instead. - Remove the
wwwroot/libsfolder and do a new build / run. This will add thelibsfolder back but the app does include the CSS file. If you run the app again without removing thewwwroot/libsfolder the CSS is included correctly.
It would be great if the libman library files were included directly in the first build.
Alternatively you can clone https://github.com/campersau/blazor-maui-libmanbug and do step 5.
Version with bug
Release Candidate 2 (current)
Last version that worked well
Unknown/Other
Affected platforms
Windows
Affected platform versions
net6.0-windows10.0.19041.0
Did you find any workaround?
Building the project a second time works correctly as the libraries are already restored.
Or copy the msbuild target from https://github.com/dotnet/sdk/blob/c53c8ac81e1bcb8118c31bc4f5622396c72e9959/src/WebSdk/Publish/Targets/ComputeTargets/Microsoft.NET.Sdk.Publish.ComputeFiles.targets#L48-L60 into the csproj.
<Target Name="_IncludePrePublishGeneratedContent" BeforeTargets="GetCopyToPublishDirectoryItems" Condition=" '$(EnableDefaultItems)' == 'true' And '$(EnableDefaultContentItems)' == 'true' ">
<ItemGroup>
<!-- First, clean up previously generated content that may have been removed. -->
<ContentWithTargetPath Remove="@(ContentWithTargetPath)" Condition="!Exists('%(Identity)')" />
<!-- Next, include any newly generated content. -->
<_WebProjectGeneratedContent Include="wwwroot\**" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder);@(_ContentIncludedByDefault)" />
<ContentWithTargetPath Include="@(_WebProjectGeneratedContent)" TargetPath="%(Identity)" CopyToPublishDirectory="PreserveNewest" />
</ItemGroup>
</Target>
Relevant log output
No response
- 主要语言
- C#
- 星标
- 486
- 派生
- 91
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
aspnet/LibraryManager 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 72/100
aspnet/LibraryManager#824 · 1 条评论 · 3 个 reaction ·
-
难度 1/5 1 小时以内 新手友好度 68/100
aspnet/LibraryManager#804 · 2 个 reaction ·
-
难度 1/5 1 小时以内 新手友好度 48/100
aspnet/LibraryManager#829 · 1 条评论 · 3 个 reaction ·
-
难度 4/5 3-5 天 新手友好度 42/100
aspnet/LibraryManager#820 ·
-
难度 4/5 3-5 天 新手友好度 35/100
aspnet/LibraryManager#808 · 5 条评论 ·
查看 aspnet/LibraryManager 的全部 Issue
相似的 Issue
-
area-System.Numerics.Tensors untriaged
难度 2/5 1-3 小时 新手友好度 78/100
dotnet/runtime#134691 · 2 条评论 ·
维护者通常 1 天内回复
-
ci-failure-cause test-failure
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
-
难度 2/5 1-3 小时 新手友好度 78/100
AvaloniaUI/Avalonia#22312 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 68/100