我正在使用Visual Studio 2019社区版,并且具有多层解决方案。下面是该截图。
请注意,这是一个复制生产解决方案的示例项目,因此,此处的命名可能并不是很重要。
项目规范 :(全部netcoreapp3.1
)
netcoreapp3.1
和Azure Function版本:3.0.7
netcoreapp3.1
都是“ .netcore类库”项目。netcoreapp3.1
问题
当从ApiTest
项目到Sample.AzureFunction.Api
的引用时,Azure生成管道失败。如果我删除项目引用,则该生成将继续为绿色。这是build
步骤在管道中运行时生成错误的屏幕截图。
基本上,所有错误都在抱怨找不到某些dll。例如,CSC : error CS0006: Metadata file 'D:\a\1\s\publish_output\Application.dll' could not be found [D:\a\1\s\Sample.AzureFunction.Api\Tests\ApiTests\ApiTests.csproj]
一些注意事项:
build
中的.net core
步骤。Azure Pipelines
。windows-2019
我使用经典视图创建管道(没有YAML),但是我可以通过单击生成的步骤并复制YAML,从生成的步骤中获取以下YAML:
我已经花了一天的时间来解决这个问题,现在我的想法已经用完了。任何想法将不胜感激。
答案 0 :(得分:1)
如果删除--output
自变量,则构建将成功。
在编译测试项目之前,您的文件夹publish_output
似乎已清除。因此,它在那里找不到这些dll。
此外,您不需要将所有dll作为工件发布。请使用publish命令为将要部署的代码创建工件:
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
# this code takes all the files in $(Build.ArtifactStagingDirectory) and uploads them as an artifact of your build.
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: 'myWebsiteName'
运行原始管道后,我列出了publish_output
文件夹,您可以在其中找到以下文件:
Application.deps.json
ClassLibrary1.deps.json
Function1
Sample.AzureFunction.Api.deps.json
bin
host.json