在Azure DevOps Repos中编译目录并将结果保存在某个地方

在Azure DevOps Repos中编译目录并将结果保存在某个地方,azure,azure-devops,azure-repos,Azure,Azure Devops,Azure Repos,假设我在Azure DevOps repo中有这样的目录结构: Main/ - A/ - *.csproj - B/ - *.csproj - C/ - *.csproj 每个子文件夹都有一个.csproj文件。我想编译Main/A/文件夹,并将构建结果(工件?)保存在某个地方,可以是文件夹或其他地方。我如何告诉Azure构建精确的Main/A/*.csproj文件,我是否需要在VSBuild@1task,还是我需要使用其他Azure任务 我如

假设我在Azure DevOps repo中有这样的目录结构:

Main/
  - A/  
    - *.csproj
  - B/
    - *.csproj   
  - C/
    - *.csproj  
每个子文件夹都有一个
.csproj
文件。我想编译
Main/A/
文件夹,并将构建结果(工件?)保存在某个地方,可以是文件夹或其他地方。我如何告诉Azure构建精确的
Main/A/*.csproj
文件,我是否需要在
VSBuild@1
task,还是我需要使用其他Azure任务

我如何告诉Azure构建精确的主/A/*.csproj文件并执行该操作 我需要在VSBuild@1任务

如果您使用的是经典UI,则需要取消默认解决方案的链接:

然后通过浏览选项选择项目:

如果您使用的是Yaml格式,那么应该使用类似于
solution:A/A.csproj
的方法来指定要构建的项目

注意:

因为现在我们构建的是单个项目而不是整个解决方案,所以我们应该使用
项目配置
而不是
解决方案配置
AnyCPU
是解决方案平台,而不是项目平台(
AnyCPU
)。因此,如果我们想使用此设置构建一个项目,那么我们应该确保使用AnyCPU构建单个项目

如果出现错误
,则未为项目“A.csproj”设置OutputPath属性
,这表明您应使用有效的项目配置。在您的情况下,如果您正在使用
any cpu
,请将其更改为
AnyCPU

此外:

1.将生成结果发布为生成工件以供进一步使用。您可以像这样使用
复制文件
任务和
发布构建工件
任务:

然后,您可以从构建日志页面下载摘要选项卡中的Test.zip。此外,您可以通过使用下载工件任务在发布管道中使用此工件

  • 如果您试图构建代码项目而不是整个解决方案,请选中。您可以考虑<代码> MSBudio任务。它们(Msbuild任务,VS Build任务)都调用Msbuild.exe来执行生成作业

  • 希望以上所有帮助:)

    谢谢。现在,管道的MSBuild阶段显示错误:
    error:此项目引用此计算机上缺少的NuGet包。使用NuGet Package Restore下载它们。
    在我的YAML文件中,我已经有了
    NuGetCommand@2
    使用
    命令:“还原”
    选项1。是否还原整个解决方案?请检查nuget restore任务的日志,以确保已成功安装软件包。2.目标框架是什么,如果是.net核心和.net标准项目,任务更适合3。尝试指定您使用的nuget工具版本,将nuget工具安装程序任务与nuget.exe 5.3.1版或其他版本一起使用。(默认的4.4太旧了。)我成功地解决了这个问题,删除了一个名为
    Migration…
    的文件夹,我不明白为什么会有这个文件夹。我还有一个问题。我想构建
    A/*.csproj
    项目,我想让Azure给它一个特定的名称,包括
    $(日期:yyy)
    ,但使用它时会显示此错误:
    错误MSB4184:表达式。。。无法评估。路径不是合法的形式。< /代码> @ FrancoScarpa,似乎你原来的问题已经解决了,你可以考虑把它添加为答案。打开一条关于新问题的新线索,因为它们是不同的问题。