【问题标题】:Compile directory in Azure DevOps Repos and save the results somewhere在 Azure DevOps Repos 中编译目录并将结果保存在某处
【发布时间】:2020-06-04 16:41:10
【问题描述】:

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

Main/
  - A/  
    - *.csproj
  - B/
    - *.csproj   
  - C/
    - *.csproj  

每个子文件夹都有一个.csproj 文件。我想编译Main/A/ 文件夹并将构建结果(工件?)保存在某个地方,无论是文件夹还是其他东西。如何告诉 Azure 构建精确的 Main/A/*.csproj 文件,我需要在 VSBuild@1 任务中使用 /p:OutputPath,还是需要使用其他 Azure 任务?

【问题讨论】:

    标签: azure azure-devops azure-repos


    【解决方案1】:

    我如何告诉 Azure 构建精确的 Main/A/*.csproj 文件并执行 我需要在 VSBuild@1 任务中使用 /p:OutputPath

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

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

    如果您使用的是 Yaml 格式,则应使用 solution: A/A.csproj 之类的内容来指定要构建的项目。

    注意:

    由于现在我们正在构建单个项目而不是整个解决方案,因此我们应该使用 Project Configuration 而不是 Solution Configurationany cpu 是解决方案平台而不是项目平台 (AnyCPU)。因此,如果我们想使用此设置构建一个项目,我们应该确保使用 AnyCPU 构建单个项目。

    如果您收到错误The OutputPath property is not set for project 'A.csproj',则表明您应该使用有效的项目配置。在您的情况下,如果您使用的是any cpu,请将其更改为AnyCPU

    另外:

    1.将构建结果发布为构建工件以供进一步使用。您可以像这样使用Copy Files 任务和Publish Build Artifacts 任务:

    Copy Files Task.

    Publish Build Artifacts

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

    1. 检查this,如果您正在尝试构建代码项目而不是整个解决方案。可以考虑MSBuildTask。它们(Msbuild 任务,VS 构建任务)都调用 msbuild.exe 来完成构建工作。

    希望以上所有帮助:)

    【讨论】:

    • 谢谢。现在在管道的 MSBuild 阶段显示错误:Error : This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. 在我的 YAML 文件中,我已经有了带有 command: 'restore' 选项的 NuGetCommand@2
    • 1.您要恢复整个解决方案吗?请检查 nuget restore 任务的日志以确保软件包安装成功。 2. 目标框架是什么,如果是.net core 和.net 标准项目,dotnet restore task 更合适 3. 尝试指定你使用的nuget tool 版本,使用nuget Tool Installer task with nuget.exe version 5.3.1 or什么。 (默认 4.4 太旧了。)
    • 我成功解决了这个问题,删除了一个名为 Migration... 的文件夹,我不明白为什么会在那里。我还有一个问题。我想构建A/*.csproj项目,我想让Azure给它一个特定的名字,包括$(Date:yyy),但是当我使用它时会出现这个错误:Error MSB4184: The expression ... cannot be evaluated. The path is not of a legal form.
    • @FrancoScarpa 看来您的原始问题已解决,您可以考虑将其添加为答案。并打开一个关于新问题的新线程,因为它们是不同的问题。
    猜你喜欢
    • 2019-06-03
    • 2020-03-11
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    相关资源
    最近更新 更多