Azure devops Azure管道-从具有项目依赖项的解决方案构建一个项目
我有一个有几个项目的解决方案Azure devops Azure管道-从具有项目依赖项的解决方案构建一个项目,azure-devops,azure-pipelines,pipeline,azure-pipelines-yaml,Azure Devops,Azure Pipelines,Pipeline,Azure Pipelines Yaml,我有一个有几个项目的解决方案 App.Client.com App.Client.WindowsService App.Client.Database App.Client.Connectors 应用程序共享 App.Client.Database和App.Client.Connectors都是App.Client.Website和App.Client.WindowsService的依赖项,App.Shared是所有项目的依赖项 我想创建两个管道:一个用于网站,一个用于windows服务 我
- App.Client.com
- App.Client.WindowsService
- App.Client.Database
- App.Client.Connectors
- 应用程序共享
App.Client.Database
和App.Client.Connectors
都是App.Client.Website
和App.Client.WindowsService
的依赖项,App.Shared
是所有项目的依赖项
我想创建两个管道:一个用于网站,一个用于windows服务
我遇到的问题是,当我将解决方案设置为App.Client.Website/*.csproj
时,它找不到任何要构建的项目引用-这对我来说很有意义,但我显然也希望让它构建我的项目引用
我试图通过为每个依赖项项目创建管道来解决这个问题,这些依赖项项目将打包一个nuget包,然后我将在我的网站和窗口服务项目中引用提要中的nuget包,但这使我无法调试代码并在这些项目中进行动态更改
DevOps是我刚刚开始学习的东西。我已经到了需要在我的网站应用程序中添加版本号的地步,并且希望停止手动增加补丁号。我使用的是YAML而不是经典的管道生成器
非常感谢您的帮助
YAML
这是我正在使用的YAML。这只是基本的YAML,解决方案针对我的网站项目
# ASP.NET
# Build and test ASP.NET projects.
# Add steps that publish symbols, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/apps/aspnet/build-aspnet-4
trigger:
- master
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.Client.Website/*.csproj'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
command: 'restore'
restoreSolution: '$(solution)'
feedsToUse: 'config'
nugetConfigPath: 'Pipelines/nuget.config'
externalFeedCredentials: 'External Feed'
- task: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
repo文件夹结构的项目文件夹位于repo的根目录下
我的网站cs项目文件中的项目参考如下:
<ItemGroup>
<ProjectReference Include="..\App.Client.Database\App.Client.Database.csproj" />
<ProjectReference Include="..\App.Client.Connectors\App.Client.Connectors.csproj" />
<ProjectReference Include="..\App.Shared\App.Shared.csproj" />
</ItemGroup>
以下是生成任务中的错误:
##[错误]C:\Program Files\dotnet\sdk\3.1.403\Sdks\Microsoft.NET.sdk\targets\Microsoft.PackageDependencyResolution.targets(241,5):错误NETSDK1004:未找到资产文件“D:\a\1\s\App.Shared\obj\project.Assets.json”。运行NuGet包还原以生成此文件
问题与NuGet Restore
任务有关,我们可以尝试还原.sln
文件以还原所有NuGet软件包,然后构建.csproj
文件。它应该能工作。你能添加你的YAML管道吗?@KrzysztofMadej更新了我的问题。它主要只是提供的默认模板。既然oy必须构建几乎所有的项目,为什么不使用***.sln
?Hi@JohZant,您能否共享repo目录结构,然后打开App.Client.Website.csproj search ProjectReference等文件,然后在此处共享项目引用路径?如果路径不正确,我们将看到警告消息:引用的项目“..\App.Client.Connectors\App.Client.Connectors1.csproj”不存在。您好@JohZant,很高兴听到您的问题已经解决。我已经将我的评论转换为一个答案,你可以,它可以帮助其他社区成员谁得到同样的问题,我们可以存档这个线程。谢谢