Blazor 作用域 CSS 未在 Azure Pipelines 上构建

2024-01-07

我正在开发一个使用作用域 CSS 的 Blazor 应用程序,但是当我尝试使用 Azure Pipelines 构建它时,不会生成作用域 CSS 文件。我在一台可以通过 RDP 访问的本地计算机上构建,我看到wwwroot/{assemblyname}.styles.css文件完全丢失后dotnet publish

当我在同一台计算机上运行 Azure Pipelines 手动显示的确切命令时,它就存在并且工作得很好。

The azure-pipelines.yml task:

- task: UseDotNet@2
  inputs:
    packageType: 'sdk'
    version: '5.x'
...
- task: DotNetCoreCLI@2
  condition: succeeded()
  displayName: Publish my.project.blazor
  inputs:
    command: 'publish'
    publishWebProjects: false
    projects: 'src\my.project.blazor\my.project.blazor.csproj'
    arguments: '/p:Version=$(MainVersion).$(Patch) -o $(PublishFolder) -c Release -v d'
    zipAfterPublish: false
    modifyOutputPath: false

管道构建开始:

Starting: Publish my.project.blazor
==============================================================================
Task         : .NET Core
Description  : Build, test, package, or publish a dotnet application, or run a custom dotnet command
Version      : 2.187.0
Author       : Microsoft Corporation
Help         : https://learn.microsoft.com/azure/devops/pipelines/tasks/build/dotnet-core-cli
==============================================================================
C:\Windows\system32\chcp.com 65001
Active code page: 65001
Info: .NET Core SDK/runtime 2.2 and 3.0 are now End of Life(EOL) and have been removed from all hosted agents. If you're using these SDK/runtimes on hosted agents, kindly upgrade to newer versions which are not EOL, or else use UseDotNet task to install the required version.
C:\agent\_work\_tool\dotnet\dotnet.exe publish C:\agent\_work\31\s\src\my.project.blazor\my.project.blazor.csproj /p:Version=1.0.17 -o C:\agent\_work\31\Publish -c Release -v d
Microsoft (R) Build Engine version 16.10.1+2fd48ab73 for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 6/18/2021 1:53:30 PM.
     0>Process = "C:\agent\_work\_tool\dotnet\dotnet.exe"
       MSBuild executable path = "C:\agent\_work\_tool\dotnet\sdk\5.0.301\MSBuild.dll"
       Command line arguments = "C:\agent\_work\_tool\dotnet\sdk\5.0.301\MSBuild.dll -maxcpucount -verbosity:m -restore -target:Publish -property:PublishDir=C:\agent\_work\31\Publish -property:Configuration=Release -verbosity:d C:\agent\_work\31\s\src\my.project.blazor\my.project.blazor.csproj /p:Version=1.0.17 -distributedlogger:Microsoft.DotNet.Tools.MSBuild.MSBuildLogger,C:\agent\_work\_tool\dotnet\sdk\5.0.301\dotnet.dll*Microsoft.DotNet.Tools.MSBuild.MSBuildForwardingLogger,C:\agent\_work\_tool\dotnet\sdk\5.0.301\dotnet.dll"
       Current directory = "C:\agent\_work\31\s"

如前所述,如果我在服务器上手动执行该命令,例如:

C:\agent\_work\_tool\dotnet\dotnet.exe publish C:\agent\_work\31\s\src\my.project.blazor\my.project.blazor.csproj /p:Version=1.0.17 -o C:\agent\_work\31\Publish -c Release -v d

它工作正常并且生成的、有范围的 .css 文件出现。

这是手动输入时命令输出的开始(注意相同的 MSBuild 版本):

Microsoft (R) Build Engine version 16.10.1+2fd48ab73 for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 6/18/2021 2:06:57 PM.
     0>Process = "C:\agent\_work\_tool\dotnet\dotnet.exe"
       MSBuild executable path = "C:\agent\_work\_tool\dotnet\sdk\5.0.301\MSBuild.dll"
       Command line arguments = "C:\agent\_work\_tool\dotnet\sdk\5.0.301\MSBuild.dll -maxcpucount -verbosity:m -restore -target:Publish -property:PublishDir=C:\agent\_work\31\Publish -property:Configuration=Release -verbosity:d C:\agent\_work\31\s\src\my.project.blazor\my.project.blazor.csproj /p:Version=1.0.17 -distributedlogger:Microsoft.DotNet.Tools.MSBuild.MSBuildLogger,C:\agent\_work\_tool\dotnet\sdk\5.0.301\dotnet.dll*Microsoft.DotNet.Tools.MSBuild.MSBuildForwardingLogger,C:\agent\_work\_tool\dotnet\sdk\5.0.301\dotnet.dll"
       Current directory = "C:\agent\_work\31\s"

我比较了这些日志文件的输出,发现了一些值得注意的事情,主要是:

管道:

1:7>Target "_GenerateScopedCssFiles" in file "C:\agent\_work\_tool\dotnet\sdk\5.0.301\Sdks\Microsoft.NET.Sdk.Razor\build\netstandard2.0\Microsoft.NET.Sdk.Razor.ScopedCss.targets" from project "C:\agent\_work\31\s\src\my.project.blazor\my.project.blazor.csproj" (target "_PrepareForScopedCss" depends on it):
       Skipping target "_GenerateScopedCssFiles" because it has no outputs.
       Though the target has declared its outputs, the output specification only references empty properties and/or empty item lists.
   1:7>Done building target "_GenerateScopedCssFiles" in project "my.project.blazor.csproj".
       Target "_PrepareForBundling" skipped. Previously built successfully.
       Target "ResolveStaticWebAssetsInputs" skipped. Previously built successfully.
       Target "_CollectAllScopedCssAssets" skipped. Previously built successfully.
   1:7>Target "BundleScopedCssFiles" in file "C:\agent\_work\_tool\dotnet\sdk\5.0.301\Sdks\Microsoft.NET.Sdk.Razor\build\netstandard2.0\Microsoft.NET.Sdk.Razor.ScopedCss.targets" from project "C:\agent\_work\31\s\src\my.project.blazor\my.project.blazor.csproj" (target "_PrepareForScopedCss" depends on it):
       Task "ConcatenateCssFiles" skipped, due to false condition; ('@(_ScopedCssProjectBundles)' != '' or '@(_ScopedCss)' != '') was evaluated as ('' != '' or '' != '').
       Task "ConcatenateCssFiles" skipped, due to false condition; ('@(_ScopedCss)' != '') was evaluated as ('' != '').

Manual:

   1:7>Target "_GenerateScopedCssFiles" in file "C:\agent\_work\_tool\dotnet\sdk\5.0.301\Sdks\Microsoft.NET.Sdk.Razor\build\netstandard2.0\Microsoft.NET.Sdk.Razor.ScopedCss.targets" from project "C:\agent\_work\31\s\src\my.project.blazor\my.project.blazor.csproj" (target "_PrepareForScopedCss" depends on it):
       Skipping target "_GenerateScopedCssFiles" because all output files are up-to-date with respect to the input files.
       Input files: 
           Components\Configurator.razor.css
           Components\Option.razor.css
           Components\Options.razor.css
           Components\Popup.razor.css
           Components\Step.razor.css
           Pages\Index.razor.css
       Output files: 
           C:\agent\_work\31\s\src\my.project.blazor\obj\Release\net5.0\scopedcss\Components\Configurator.razor.rz.scp.css
           C:\agent\_work\31\s\src\my.project.blazor\obj\Release\net5.0\scopedcss\Components\Option.razor.rz.scp.css
           C:\agent\_work\31\s\src\my.project.blazor\obj\Release\net5.0\scopedcss\Components\Options.razor.rz.scp.css
           C:\agent\_work\31\s\src\my.project.blazor\obj\Release\net5.0\scopedcss\Components\Popup.razor.rz.scp.css
           C:\agent\_work\31\s\src\my.project.blazor\obj\Release\net5.0\scopedcss\Components\Step.razor.rz.scp.css
           C:\agent\_work\31\s\src\my.project.blazor\obj\Release\net5.0\scopedcss\Pages\Index.razor.rz.scp.css
   1:7>Done building target "_GenerateScopedCssFiles" in project "my.project.blazor.csproj".
       Target "_PrepareForBundling" skipped. Previously built successfully.
       Target "ResolveStaticWebAssetsInputs" skipped. Previously built successfully.
       Target "_CollectAllScopedCssAssets" skipped. Previously built successfully.
   1:7>Target "BundleScopedCssFiles" in file "C:\agent\_work\_tool\dotnet\sdk\5.0.301\Sdks\Microsoft.NET.Sdk.Razor\build\netstandard2.0\Microsoft.NET.Sdk.Razor.ScopedCss.targets" from project "C:\agent\_work\31\s\src\my.project.blazor\my.project.blazor.csproj" (target "_PrepareForScopedCss" depends on it):
       Using "ConcatenateCssFiles" task from assembly "C:\agent\_work\_tool\dotnet\sdk\5.0.301\Sdks\Microsoft.NET.Sdk.Razor\build\netstandard2.0\..\..\tasks\net5.0\Microsoft.NET.Sdk.Razor.Tasks.dll".
       Task "ConcatenateCssFiles"
       Done executing task "ConcatenateCssFiles".
       Task "ConcatenateCssFiles"
       Done executing task "ConcatenateCssFiles".

我不明白为什么 Azure Pipelines 触发器构建说Skipping target "_GenerateScopedCssFiles" because it has no outputs.,但我认为这可能是我的问题的原因。

如何让 Pipelines 确定范围并捆绑我的 .css 文件?


我有类似的问题。尽管公平地说,我也使用了网络编译器,这增加了一些复杂性。

我让它工作的唯一方法是在发布命令之前执行 .net build 命令。

值得一试

编辑:很高兴它也对你有用。和你一样,我不知道为什么这会起作用,在对一个低价值项目的构建过程进行了太长时间的混乱之后……一旦它起作用了,我就没有研究为什么。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Blazor 作用域 CSS 未在 Azure Pipelines 上构建 的相关文章

随机推荐

  • 确定Linux键盘事件设备

    这另一个问题 从 Linux 输入设备访问按键 https stackoverflow com questions 20943322 accessing keys from linux input device 提供了有关如何在没有按下其他
  • 访问 numpy 数组中元素的属性

    我有一个充满对象 dtype object 的numpy数组cftime class In 1 a Out 1 array cftime DatetimeNoLeap 2000 1 1 11 29 59 999996 5 1 cftime
  • 什么是终结符和非终结符?

    我正在读 雷布尔 维基百科页面 https en wikipedia org wiki Rebol 解析表达式是用 parse 方言编写的 与 do 方言一样 它是数据交换方言的面向表达式的子语言 与 do 方言不同 parse 方言使用表
  • 如何在 Keras 中添加常量张量?

    我想做的是向网络的输出添加一个常量张量 inputs Input shape config N FRAMES IN SEQUENCE config IMAGE H config IMAGE W config N CHANNELS cnn V
  • 删除满足条件的一半数据帧行

    我希望根据条件提取数据帧的子集 比方说 df pd Dataframe Col1 values1 Col2 values2 Col3 values3 我想按 Col2 排序 在 Col2 中的负条目 如果有的话 中 我想删除最大的一半 因此
  • 使用 LINQ 从数据集中选择行,其中 RowsID 列表位于 List

    首先我必须说 我是一个使用 LINQ 的新手 实际上我以前从未使用过 但我有一个任务需要使用来自列表的值来过滤数据表 所以我想知道是否可以在 LINQ 中使用列表中的值作为过滤器值来查询数据表 有人可以给我一些提示 谢谢 执行此操作的最佳方
  • Flutter 图像选择器无法从相册/图库中选择图像

    我正在尝试在我的应用程序中实现 imagepicker 库 我的应用程序运行没有任何错误 但我无法从相册 图库中选取 选择图像 选择图像后 应用程序应在正文中显示图像 但没有任何反应 我必须点击 取消 才能返回主屏幕 我还应该提到控制台返回
  • JavaScript 图像调整大小

    有谁知道如何使用 JavaScript 按比例调整图像大小 我尝试通过添加属性来修改 DOMheight and width即时运行 但似乎在 IE6 上不起作用 要按比例修改图像 只需更改宽度 高度 CSS 属性之一 将另一个设置为自动
  • 从 Windows 命令行获取文件夹大小

    在 Windows 中 是否可以在不使用任何第三方工具的情况下从命令行获取文件夹的大小 我想要与右键单击 Windows 资源管理器 属性中的文件夹时获得的结果相同的结果 有一个内置 Windows 工具为了那个原因 dir s Folde
  • 如何避免锯齿并提高性能?

    In this 堆栈溢出答案 https stackoverflow com a 9709724 2345484事实证明 C 中的别名会降低代码速度 C 中的别名不仅适用于指针 还适用于引用 更普遍地适用于标准指定的这些类型 https s
  • ajax POST 后无法访问 JQuery $(this)?

    假设我有一堆共享点击事件的链接 a href class do stuff Click me a a href class do stuff Click me a a href class do stuff Click me a a hre
  • 使用 Utf8Json 库序列化时排除空字段?

    使用以下方法将 POCO 序列化为 JSON 字符串时 有什么方法可以忽略空字段Utf8Json图书馆 我有一个ToString我在外部使用的下面的类中的方法 所以我想看看是否有任何方法可以在进行序列化时排除空字段 基本上我不希望序列化后
  • 禁用 gcc 对不兼容选项的警告

    我很好奇是否有一个选项可以禁用 gcc 关于参数对正在编译的语言无效的警告 Ex cc1 warning command line option Wno deprecated is valid for C Java ObjC but not
  • 如何在显示 jQuery ui 选项卡时插入 JavaScript?

    我想在我的页面上运行 JavaScript 函数 但仅限于显示选项卡时 其实有两个问题 我没有使用 ajax 选项卡 那么如果我只想在显示选项卡后运行代码 我会将 JavaScript 放入 加载 或 显示 回调中吗 根据上面的答案 我的代
  • IE 和 Firefox 中的文本大小不同

    为什么 IE 中的文本比 Firefox 中的文本稍大 宽 示例 顶部是 IE 渲染文本的方式 底部是 FF Image http www dreamscape hu text jpg 在 CSS 中声明为 Arial 16px 的文本 我
  • 如何将 Xamarin Forms Shell 集成到 MvvmCross 设置中

    我打算将 Xamarin Forms 与 MvvmCross 一起使用 根据他们的tutorial https www mvvmcross com documentation tutorials tipcalc a xamarin form
  • 如何接入Kubernetes部署

    我已经创建了 Docker 映像 并部署在具有最少数量机器的 k8s 集群中 设置了一台主机和一台工作机 两台机器都已启动并运行 并使用相同的 VLAN 网络相互通信 请查找以下 Pod 和部署服务以及所描述的状态 root jenkins
  • 如何配置 protobuf-net 的 RuntimeModel.Default 以支持序列化/反序列化 SessionSecurityToken?

    BinaryFormatter 能够简单地处理序列化 private byte TokenToBytes SessionSecurityToken token if token null return null using var memo
  • XML 格式中的换行符?

    在 XML 中编辑字符串时 我需要添加换行符 我想问一下 为 android 编程时 正确的形式是什么 因为 br 有效 但 ECLIPSE 将该区域标记为有问题 如果我查看建议 Eclipse 会告诉我我应该添加一个结束标签 如果我添加换
  • Blazor 作用域 CSS 未在 Azure Pipelines 上构建

    我正在开发一个使用作用域 CSS 的 Blazor 应用程序 但是当我尝试使用 Azure Pipelines 构建它时 不会生成作用域 CSS 文件 我在一台可以通过 RDP 访问的本地计算机上构建 我看到wwwroot assembly