【发布时间】:2022-01-22 22:55:24
【问题描述】:
我一直在尝试解决由我的管道创建的 drop 不包含不同 .csproj 的 {Assembly}.styles.css 的问题。当我在本地发布时,它可以按预期工作,但不能在 Azure 管道上运行。
我没有找到很多关于此的信息。有这个 Stackoverflow answer 关于执行构建命令,但我希望有一些更容易/更好/内置的东西。
Yaml 的详细信息(看起来很直接...我省略了测试和符号步骤)
steps:
- task: NuGetToolInstaller@1
displayName: 'Use NuGet 5.11.0'
inputs:
versionSpec: 5.11.0
checkLatest: true
- task: NuGetCommand@2
displayName: 'NuGet restore'
inputs:
restoreSolution: '$(Parameters.solution)'
- task: VSBuild@1
displayName: 'Build solution **\*.sln'
inputs:
solution: '$(Parameters.solution)'
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
- task: CopyFiles@2
displayName: 'Copy Files to: $(build.artifactstagingdirectory)\Blazor*************'
inputs:
SourceFolder: '$(system.defaultworkingdirectory)\'
TargetFolder: '$(build.artifactstagingdirectory)\Blazor**************'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'
condition: succeededOrFailed()
在日志中,我可以找到我无法真正理解的信息,例如:
在复制到后跳过资产“D:\a\41\s\Blazor******\obj\Release\net6.0\scopedcss\bundle\Blazor******.styles.css”输出目录选项为“从不”
接受的候选资产 'D:\a\41\s\Blazor******\obj\Release\net6.0\scopedcss\bundle\Blazor******.styles.css' 因为项目模式是 '根'和资产模式是'CurrentProject' 跳过资产 'D:\a\41\s\Blazor******\obj\Release\net6.0\scopedcss\bundle\Blazor******.styles.css' 因为源类型是 'Project '
有人有想法吗?
谢谢:)
【问题讨论】:
-
嗨舒瑞诺;我可以请您编辑您的答案以包含管道代码的相关位吗?答案可能与您构建代码和发布工件的方式有关,但如果不确切知道您的管道如何执行这些任务,则很难回答。
-
由于我们使用的是 TFS(我们将很快迁移到 git),我们的管道仅通过 UI 制作,但我想我可以复制 yaml。让我看看我该怎么做。
-
@VinceBowdren 感谢您提供的任何帮助,我很感激,我添加了一些细节,它不是一个复杂的管道。它才刚刚开始。
-
从管道中的任务设置来看,css 文件如果存在 似乎会被包含在 中;所以我只能得出结论,它根本不存在。在你的情况下,我会临时添加一个 powershell 任务 - 在构建任务之后 - 列出存在的文件,并希望我能找出还缺少什么,以及为什么会这样。
-
你是对的,它们是用那个步骤复制的(这是一个测试,我通常输出到一个文件夹来尝试并且只捆绑相关的 dll)。它们在每个项目的 \obj\Release\net6.0\scopedcss\bundle 中都非常深入,但从未离开过,似乎构建不会本地复制它们,我希望能找到阻止我的东西制作自定义步骤。让我烦恼的是跳过资产 {..}。复制到输出目录选项是“从不”,但我似乎找不到如何告诉系统复制构建生成的文件。我需要查看本地发布以了解其工作原理。
标签: azure-pipelines blazor blazor-webassembly