C# 在GitHub操作中执行Windows应用程序(错误:无法识别工具版本“15.0”)

C# 在GitHub操作中执行Windows应用程序(错误:无法识别工具版本“15.0”),c#,continuous-integration,github-actions,C#,Continuous Integration,Github Actions,我正在扩展一个Windows应用程序,它可以分析C代码并检测各种气味。该扩展也将在GitHub操作中工作。目的是使用此应用程序作为CI周期的一部分分析提交的代码。该应用程序是基于.NET framework 4.7.2的控制台应用程序 为了将应用程序与GitHub操作集成在一起,我创建了一个yml文件(如下所示)。其他一切正常,但应用程序失败,并显示以下消息 The tools version "15.0" is unrecognized. Available tools v

我正在扩展一个Windows应用程序,它可以分析C代码并检测各种气味。该扩展也将在GitHub操作中工作。目的是使用此应用程序作为CI周期的一部分分析提交的代码。该应用程序是基于.NET framework 4.7.2的控制台应用程序

为了将应用程序与GitHub操作集成在一起,我创建了一个yml文件(如下所示)。其他一切正常,但应用程序失败,并显示以下消息

The tools version "15.0" is unrecognized. Available tools versions are "2.0", "3.5", "4.0". 
我正在使用下面的yml文件。如您所见,我已将MSBuild添加到路径中,将环境变量设置为使用版本15,将环境变量VSINSTALLDIR设置为Visual Studio 2017安装,并安装了生成工具。然而,我仍然得到了错误。我错过了什么

Name: CI

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:
    runs-on: windows-latest

    steps:
    - uses: actions/checkout@v2

    # Add  MsBuild to the PATH: https://github.com/microsoft/setup-msbuild
    - name: Setup MSBuild.exe
      uses: microsoft/setup-msbuild@v1.0.0
      with:
          vs-version: '15.0'

    - name: env var
      run: echo ::set-env name=VSINSTALLDIR::"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise"

    - name: checking sdk
      run: echo ::set-env name=VisualStudioVersion::"15.0"

    - name: install build tools
      run: |
        curl.exe -o buildtools.exe https://download.visualstudio.microsoft.com/download/pr/3e542575-929e-4297-b6c6-bef34d0ee648/639c868e1219c651793aff537a1d3b77/vs_buildtools.exe
        .\buildtools.exe --quiet --wait --norestart --nocache --add Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools --add Microsoft.VisualStudio.Workload.UniversalBuildTools --add Microsoft.VisualStudio.Workload.MSBuildTools --add Microsoft.VisualStudio.Workload.VCTools
    
    # Runs a set of commands using the runners shell
    - name: download DesigniteConsole.exe
      run: |
        curl.exe -o DesigniteConsole.zip "<download link>"
        powershell.exe -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('DesigniteConsole.zip','.');}"
    
    - name: Run Designite application (it utilizes GitHub secrets and environment variables)
      run: |
        .\DesigniteConsole\DesigniteConsole.exe -ci -repo ${{github.repository}} -pat ${{ secrets.PAT }} -k ${{ secrets.D_KEY }}
        cat Designite_output/DesigniteAnalysis.xml
名称:CI
关于:
推送:
分支机构:[硕士]
拉拽请求:
分支机构:[硕士]
工作:
建造:
运行于:windows最新版本
步骤:
-用途:行动/checkout@v2
#将MsBuild添加到路径:https://github.com/microsoft/setup-msbuild
-名称:安装程序MSBuild.exe
使用:microsoft/setup-msbuild@v1.0.0
与:
vs版本:“15.0”
-名称:env var
运行:echo::set env name=VSINSTALLDIR::“C:\Program Files(x86)\Microsoft Visual Studio\2017\Enterprise”
-名称:检查sdk
运行:echo::set env name=VisualStudioVersion::“15.0”
-名称:安装生成工具
运行:|
curl.exe-o buildtools.exehttps://download.visualstudio.microsoft.com/download/pr/3e542575-929e-4297-b6c6-bef34d0ee648/639c868e1219c651793aff537a1d3b77/vs_buildtools.exe
.\buildtools.exe--安静--等待--norestart--nocache--添加Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools--添加Microsoft.VisualStudio.Workload.UniversalBuildTools--添加Microsoft.VisualStudio.Workload.MSBuildTools--添加Microsoft.VisualStudio.Workload.VCTools
#使用runners外壳运行一组命令
-名称:下载DesigniteConsole.exe
运行:|
curl.exe-o DesigniteConsole.zip“”
powershell.exe-nologo-noprofile-command“&{Add Type-A'System.IO.Compression.FileSystem';[IO.Compression.ZipFile]::ExtractToDirectory('DesigniteConsole.zip',');}”
-名称:运行Designite应用程序(它利用GitHub机密和环境变量)
运行:|
.\DesigniteConsole\DesigniteConsole.exe-ci-repo${{github.repository}}-pat${{secrets.pat}-k${{secrets.D_KEY}
cat Designite_输出/DesigniteAnalysis.xml

希望我正确理解了你的问题

看看这个问题

托管代理上只有最新版本的VS。在发生更改和/或您拥有自托管代理时,版本标志确实存在

最近,运行程序在指定版本参数时未能执行此引擎。
解决方法:删除对操作使用的vs version参数,并将其默认为最新版本。

希望我正确理解了您的问题

看看这个问题

托管代理上只有最新版本的VS。在发生更改和/或您拥有自托管代理时,版本标志确实存在

最近,运行程序在指定版本参数时未能执行此引擎。
解决方法:删除对操作使用的vs version参数,并将其默认为最新版本。

经过多次尝试,我能够使其运行。这是正在工作的yaml

Name: CI

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:
    runs-on: windows-latest

    steps:
    - uses: actions/checkout@v2

    - name: Run a one-line script
      run: Invoke-webrequest -uri  https://aka.ms/vs/15/release/vs_buildtools.exe -OutFile vs_buildtools.exe
      shell: powershell

    - name: install build tools
      run: .\vs_buildtools.exe --wait --norestart --passive --installPath "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools" --add Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools --add Microsoft.VisualStudio.Workload.MSBuildTools
      shell: cmd
    
    # Runs a set of commands using the runners shell
    - name: download DesigniteConsole.exe
      run: |
        curl.exe -o DesigniteConsole.zip "<download link>"
        powershell.exe -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('DesigniteConsole.zip','.');}"
    
    - name: Run Designite application (it utilizes GitHub secrets and environment variables)
      run: |
        .\DesigniteConsole\DesigniteConsole.exe -ci -repo ${{github.repository}} -pat ${{ secrets.PAT }} -k ${{ secrets.D_KEY }}
        cat Designite_output/DesigniteAnalysis.xml
名称:CI
关于:
推送:
分支机构:[硕士]
拉拽请求:
分支机构:[硕士]
工作:
建造:
运行于:windows最新版本
步骤:
-用途:行动/checkout@v2
-名称:运行一行脚本
运行:调用webrequest-urihttps://aka.ms/vs/15/release/vs_buildtools.exe -OutFile vs_buildtools.exe
shell:powershell
-名称:安装生成工具
运行:。\vs_buildtools.exe--等待--norestart--被动--安装路径“C:\Program Files(x86)\Microsoft Visual Studio\2017\buildtools”--添加Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools--添加Microsoft.VisualStudio.Workload.MSBuildTools
shell:cmd
#使用runners外壳运行一组命令
-名称:下载DesigniteConsole.exe
运行:|
curl.exe-o DesigniteConsole.zip“”
powershell.exe-nologo-noprofile-command“&{Add Type-A'System.IO.Compression.FileSystem';[IO.Compression.ZipFile]::ExtractToDirectory('DesigniteConsole.zip',');}”
-名称:运行Designite应用程序(它利用GitHub机密和环境变量)
运行:|
.\DesigniteConsole\DesigniteConsole.exe-ci-repo${{github.repository}}-pat${{secrets.pat}-k${{secrets.D_KEY}
cat Designite_输出/DesigniteAnalysis.xml

经过多次尝试,我终于可以让它运行了。这是正在工作的yaml

Name: CI

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:
    runs-on: windows-latest

    steps:
    - uses: actions/checkout@v2

    - name: Run a one-line script
      run: Invoke-webrequest -uri  https://aka.ms/vs/15/release/vs_buildtools.exe -OutFile vs_buildtools.exe
      shell: powershell

    - name: install build tools
      run: .\vs_buildtools.exe --wait --norestart --passive --installPath "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools" --add Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools --add Microsoft.VisualStudio.Workload.MSBuildTools
      shell: cmd
    
    # Runs a set of commands using the runners shell
    - name: download DesigniteConsole.exe
      run: |
        curl.exe -o DesigniteConsole.zip "<download link>"
        powershell.exe -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('DesigniteConsole.zip','.');}"
    
    - name: Run Designite application (it utilizes GitHub secrets and environment variables)
      run: |
        .\DesigniteConsole\DesigniteConsole.exe -ci -repo ${{github.repository}} -pat ${{ secrets.PAT }} -k ${{ secrets.D_KEY }}
        cat Designite_output/DesigniteAnalysis.xml
名称:CI
关于:
推送:
分支机构:[硕士]
拉拽请求:
分支机构:[硕士]
工作:
建造:
运行于:windows最新版本
步骤:
-用途:行动/checkout@v2
-名称:运行一行脚本
运行:调用webrequest-urihttps://aka.ms/vs/15/release/vs_buildtools.exe -OutFile vs_buildtools.exe
shell:powershell
-名称:安装生成工具
运行:。\vs_buildtools.exe--等待--norestart--被动--安装路径“C:\Program Files(x86)\Microsoft Visual Studio\2017\buildtools”--添加Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools--添加Microsoft.VisualStudio.Workload.MSBuildTools
shell:cmd
#使用runners外壳运行一组命令
-名称:下载DesigniteConsole.exe
运行:|
curl.exe-o DesigniteConsole.zip“”
powershell.exe-nologo-noprofile-command“&{Add Type-A'System.IO.Compression.FileSystem';[IO.Compression.ZipFile]::ExtractToDirectory('DesigniteConsole.zip',');}”