Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Teamcity 生成后更新阻止的二进制文件_Teamcity - Fatal编程技术网

Teamcity 生成后更新阻止的二进制文件

Teamcity 生成后更新阻止的二进制文件,teamcity,Teamcity,我想将二进制文件复制到后台服务器,作为构建的最后一步。以前我是为IIS支持的asp.net网站做这项工作的。没有问题,因为IIS不阻止任何边界。现在,我需要对可执行服务器应用程序(它执行一些后台任务)执行相同的操作,这些应用程序至少会阻止其exe文件。所以我需要关闭应用程序,更新二进制文件,然后再次运行应用程序 使用TeamCity实现这一目标的最佳方式是什么?我觉得您的登台服务器似乎是一台windows机器。如果是这样,我建议使用(PsKill和PsExec)中的两个可执行文件来终止/启动进程

我想将二进制文件复制到后台服务器,作为构建的最后一步。以前我是为IIS支持的asp.net网站做这项工作的。没有问题,因为IIS不阻止任何边界。现在,我需要对可执行服务器应用程序(它执行一些后台任务)执行相同的操作,这些应用程序至少会阻止其exe文件。所以我需要关闭应用程序,更新二进制文件,然后再次运行应用程序


使用TeamCity实现这一目标的最佳方式是什么?

我觉得您的登台服务器似乎是一台windows机器。如果是这样,我建议使用(PsKill和PsExec)中的两个可执行文件来终止/启动进程。以下是我如何在TeamCity中设置一切:

  • PsTools套件,并将zip文件的内容复制到生成服务器上的文件夹中。在我的示例中,我将使用C:\Program Files\p工具

  • 创建一个批处理文件,该文件将终止可执行服务器应用程序,复制相应的二进制文件,然后再次启动应用程序。批处理文件如下所示:

    “C:\Program Files\PsTools\PsKill”-accepteula\computername-u username-p password name_of_process_to_kill.exe

    复制文件-我假设您使用命令行将二进制文件复制到ASP.Net临时站点。如果没有,我可以稍后提供更多细节

    “C:\Program Files\PsTools\PsExec”-accepteula\computername-u用户名-p密码-d“远程\u服务器上\u可执行文件的路径\u和\u名称\u”可选\u命令行\u参数

  • 将新的命令行生成步骤添加到TeamCity生成配置中,该配置将执行步骤2中创建的批处理文件


  • 我希望这有帮助

    以下是我解决问题的方法。我使用以下自定义脚本添加了命令行步骤:

    taskkill /IM MyApplicationProcessName /F
    xcopy RelativePathToBuildBinaires PathWhereToDeployBinaries /s /e /y
    start PathToMyApplicationExeInDeployFolder
    
    最初,它不作为TeamCity构建代理作为服务(没有UI)工作。然后我禁用了服务,并启动了构建代理作为控制台(由TeamCityFolder/builagent/bin/agent.bat)。它成功了