Azure Pipelines 上的 C# 编译器 (csc.exe)

C# compiler (csc.exe) on Azure Pipelines

我创建了一个工具,需要您安装 csc.exe 编译器并将其添加到 PATH。

我想使用 Azure Pipelines 测试该程序是否正常工作,但我不知道如何安装并将其添加到 PATH 变量。

我该怎么做(并删除错误 'csc' is not recognized as an internal or external command, operable program or batch file.)?

这是我的管道 运行:

https://dev.azure.com/LumitoLuma/GitHub/_build/results?buildId=30&view=logs&j=12f1170f-54f2-53f3-20dd-22fc7dff55f9

这是代码:

trigger:
- master

pool:
  vmImage: 'windows-latest'

steps:

- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      echo "##vso[task.setvariable variable=JAVA_HOME]$(JAVA_HOME_11_X64)"
      echo "##vso[task.setvariable variable=PATH]$(JAVA_HOME_11_X64)\bin;$(PATH)"
  displayName: Setting up Java

- task: NuGetCommand@2
  inputs:
    command: 'custom'
    arguments: 'install Microsoft.Net.Compilers'

- script: install.bat
  displayName: Installing JCC

非常感谢您的帮助!

How can I do that (and remove the error 'csc' is not recognized as an internal or external command, operable program or batch file.)?

windows-hosted 代理安装了相应的 VS。由于您使用的是 windows-latest 元素,因此 Azure DevOps 将使用 windows2019 并为您的管道安装 VS2019。您可以在下面查看 Csc.exe 的不同路径:

对于VS2017 Enterprise

C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise\MSBuild.0\Bin\Roslyn\csc.exe

对于VS2019 Enterprise

C:\Program Files (x86)\Microsoft Visual Studio19\Enterprise\MSBuild\Current\Bin\Roslyn\csc.exe

对于.net 4.0 framework

C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe

解决方法:

先使用多行脚本到csc.exeSet the path,然后再调用install.bat.

- script: |
    SET PATH=%PATH%;"C:\Program Files (x86)\Microsoft Visual Studio19\Enterprise\MSBuild\Current\Bin\Roslyn\"
    install.bat
  displayName: 'Run a multi-line script'

当您使用 windows-latest 代理时,您可以使用上面的脚本。并且您可以随时修改路径以使用其他代理。另外,区分一行脚本和多行脚本的区别:

- script: echo Hello, world!
  displayName: 'Run a one-line script'

- script: |
    echo Add other tasks to build, test, and deploy your project.
    echo See https://aka.ms/yaml
  displayName: 'Run a multi-line script'