Asp.net core 如何使用声明性管道顺利运行dotnetrun命令

Asp.net core 如何使用声明性管道顺利运行dotnetrun命令,asp.net-core,groovy,jenkins-pipeline,Asp.net Core,Groovy,Jenkins Pipeline,我不熟悉Jenkins和管道,我创建了Web API,并使用声明性管道在本地主机上构建和部署项目。 我在通过声明性管道执行Dotnet Run命令时遇到了一个问题,它工作正常,但是没有完成阶段(它继续运行),我必须手动中止它。 原因是dotnetrun使用kestrelweb服务器运行.netcore应用程序 以下是我的脚本: def BatchFile = "C:\\WorkSpace\\Thoughts\\DotnetEXEC.bat" pipeline{ agent any

我不熟悉Jenkins和管道,我创建了Web API,并使用声明性管道在本地主机上构建和部署项目。 我在通过声明性管道执行Dotnet Run命令时遇到了一个问题,它工作正常,但是没有完成阶段(它继续运行),我必须手动中止它。 原因是dotnetrun使用kestrelweb服务器运行.netcore应用程序

以下是我的脚本:

def BatchFile = "C:\\WorkSpace\\Thoughts\\DotnetEXEC.bat"

pipeline{
    agent any

    environment {
        dotnet ='C:\\Program Files (x86)\\dotnet\\'
        sln = 'C:\\WorkSpace\\Thoughts\\Thoughts\\Thoughts.sln'
        nugetexe = 'C:\\ProgramData\\chocolatey\\lib\\NuGet.CommandLine\\tools\\NuGet.exe'
        packagedir='C:\\WorkSpace\\Thoughts\\packages'
        trxFilePath= 'C:\\WorkSpace\\Thoughts\\Thoughts\\ThoughtsUnitTest\\TestResults'
        mainDirectory='C:\\WorkSpace\\Thoughts'
        testResultFileName='UnitTestRestult.trx'
        publishDirectory='C:\\WorkSpace\\Thoughts\\Publish'
        webAPIProjectFile='C:\\WorkSpace\\Thoughts\\Thoughts\\ThoughtsService\\ThoughtsService.csproj'
        webAPIBuild='\\Thoughts\\Libraries\\ThoughtsService\\netcoreapp2.1'
        }

    triggers {
        pollSCM 'H/15 * * * *'
    }

 stages {
             stage('Checkout') {
                steps {
                 git credentialsId: 'be9c1836-afb8-4e2a-9f8a-96888c92c77d', url: 'https://github.com/gargankurg/Thoughts', branch: 'develop'
                 }
              }                 
              stage('Restore packages'){
              steps{
                bat "%nugetexe% restore %sln%"
                }
              }
              stage('Clean'){
                steps{
                    bat "dotnet clean %sln%"
                 }
               }               
               stage('Build'){
               steps{
                  bat "dotnet build %sln% --configuration Release"
                }
             } 
             stage('Test: Unit Test'){
               steps {
                 bat "dotnet test %sln% -l:trx;LogFileName=%testResultFileName%"
                 bat "copy %trxFilePath%\\%testResultFileName% %mainDirectory%"
                 }
              }                
               stage('Publish'){
                 steps{
                   bat "dotnet publish %webAPIProjectFile% --framework netcoreapp2.1 --output %publishDirectory% --self-contained true --runtime osx.10.11-x64 "
                 }
            }
            stage('Run'){
                 steps{                                     
                    bat "%mainDirectory%\\DotnetEXEC.bat"
                    }
            }
        }
}
这是我的.bat文件内容 cd C:\WorkSpace\thinks\thinks\thinks服务
dotnet run--verbosity N

您的脚本不显示对
dotnet run
的调用。另外,为什么要在构建管道中启动应用程序?它位于我刚才添加的.bat文件中,感谢您指出它。不过,我的第二个问题仍然存在:为什么要运行应用程序?还有,为什么要使用
dotnet run
运行它,它将执行应用程序的开发版本,而不是您发布的版本。是的,原因是dotnet run将启动Ketrel web服务器,该服务器允许我使用5000/5001端口将请求发送到我的应用程序。