[Blazor] libman libraries not included in first build
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 38/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- csharp
- Domain
- build-system
Research direction
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.
Written by the indexing model from the issue text.
Description
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": "twitter-bootstrap@5.1.3",
"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
- Dominant language
- C#
- Stars
- 486
- Forks
- 91
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from aspnet/LibraryManager
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
aspnet/LibraryManager#824 · 1 comment · 3 reactions ·
-
Difficulty 1/5 Under an hour Newbie friendliness 68/100
aspnet/LibraryManager#804 · 2 reactions ·
-
Difficulty 1/5 Under an hour Newbie friendliness 48/100
aspnet/LibraryManager#829 · 1 comment · 3 reactions ·
-
Difficulty 4/5 3-5 days Newbie friendliness 42/100
aspnet/LibraryManager#820 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
aspnet/LibraryManager#808 · 5 comments ·
All issues in aspnet/LibraryManager
Similar issues
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 90/100
-
Type: enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
apache/arrow-adbc#4809 ·
-
type/automation type/tech-debt
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
microsoft/vscode-azurefunctions#5197 · 1 comment ·
-
Difficulty 1/5 Under an hour Newbie friendliness 85/100
microsoft/microsoft-ui-reactor#1274 ·