Deployment 部署工具:获取工具将在不执行部署脚本的情况下执行的操作列表

Deployment 部署工具:获取工具将在不执行部署脚本的情况下执行的操作列表,deployment,msbuild,nant,Deployment,Msbuild,Nant,我们正在评估部署的MSBuild和Nant。我们可以使用自己的工具。另一个业务部门(我们称之为DeptA)真正希望拥有的一件事是,DeptA中的人能够阅读脚本并了解它将做什么。目前,我们使用.bat文件执行此操作。我们讨厌蝙蝠档案。讨厌的蝙蝠档案。但如果我们要求DeptA学习一种新的脚本语言(nant、msbuild),他们可能会抵制 理想情况下,所选择的构建工具能够在不做任何其他事情的情况下抛出一个操作列表。大致如下: 停止服务器Z上的ABC服务 停止服务器Z上的服务DEF 从中复制所有文件

我们正在评估部署的MSBuild和Nant。我们可以使用自己的工具。另一个业务部门(我们称之为DeptA)真正希望拥有的一件事是,DeptA中的人能够阅读脚本并了解它将做什么。目前,我们使用.bat文件执行此操作。我们讨厌蝙蝠档案。讨厌的蝙蝠档案。但如果我们要求DeptA学习一种新的脚本语言(nant、msbuild),他们可能会抵制

理想情况下,所选择的构建工具能够在不做任何其他事情的情况下抛出一个操作列表。大致如下:

  • 停止服务器Z上的ABC服务
  • 停止服务器Z上的服务DEF
  • 从中复制所有文件 \服务器\dirA\dirB到\server2\dirC
  • 在服务器Z上启动服务ABC
  • 在服务器Z上启动服务DEF
  • 在目录中运行所有脚本 \服务器\dirA\dirC

是否可以使用MSBuild执行此操作?南特?没有我重新学习XSL

如果我是你,我会把MSBuild和。您应该让MSBuild脚本执行启动/停止服务等操作,然后让MSDeploy复制文件。使用MSDeploy,您可以使用
-whatif
开关指示您只希望执行操作的报告,而不是实际执行它。不幸的是,MSBuild没有提供这种开箱即用的选项,您必须将其“构建”到脚本中。您可以使用属性和条件执行此操作。例如,它可能看起来像这样:

<Project ...>
    <PropertyGroup>
      <!-- 
          Create the property to use, and declare a default value.
          Here I've defaulted this to true because it is better to force the
          caller to explicitly specify when to perform the action instead of it
          being the default.
      -->
      <SimulateExecution Condition= '$(SimulateExecution)'==''>true</SimulateExecution>
    </PropertyGroup>

    <Target Name="Deploy">
        <Message Text="Deploy started" />

        <Message Text="Stop service ABC on server Z"/>
        <WindowsService ... Condition=" '$(SimulateExecution)'=='false' "/>

        <Message Text="Stop service DEF on server Z"/>
        <WindowsService ... Condition=" '$(SimulateExecution)'=='false' "/>

        <!-- Call MSDeploy with the Exec task. -->
        <PropertyGroup>
            <MSDeployCommand>...\msdeploy.exe YOUR_OPTIONS_HERE</MSDeployCommand>

            <!-- Append the -whatif to the command if this is just a simulation -->
            <MSDeployCommand Condition= '$(SimulateExecution)'=='false' ">$(MSDeployCommand) -whatif</MSDeployCommand>
        </PropertyGroup>


         <Exec Command="$(MSDeployCommand)" />

         ... More things here
    </Target>
</Project>

真的
…\msdeploy.exe请在此处选择您的选项

@这还不够详细吗?没有你的消息。谢谢你提供的信息。这似乎正是我要找的。