MSDeploy未在目标

时间:2017-07-02 13:31:49

标签: asp.net-mvc iis azure-devops msdeploy azure-pipelines

我试图在VSTS中配置构建和发布管道,以便我可以将构建推送到各种环境。为实现此目的,我将利用parameters.xml文件进行MSDeploy,并使用Tokenizer任务覆盖之后在SetParameters.xml文件中设置的标记。

当我部署到站点时,它确实到达目标计算机并在那里部署,但路径不正确。它不是复制到我在parameters.xml中指定的Web应用程序的虚拟目录,而是采用包中的路径并复制它(因此,C:\ agent_work ...)。 / p>

我知道tokenizer和至少部分parameters.xml和SetParameters.xml正在工作并正确转换连接字符串,因为生成的web.config确实具有正确的值,但是IIS Web应用程序名称参数不是&#39 ;似乎工作正常。

如果我创建自己的发布配置文件并在DeployIisAppPath中对网站名称进行硬编码并使用它来打包,我确实可以使用它。但这并不理想,因为我希望将站点名称作为参数。

以下是所有相关文件。如果您需要更多信息,请告诉我。非常感谢提前!

的parameters.xml

<parameters>
  <parameter name="IIS Web Application Name"
           description="Please specify the IIS Web Application Name"
           defaultValue="__IISWebApplicationName__">
    <parameterentry  kind="ProviderPath"
                     scope="IisApp"
                     match="@defaultValue">
    </parameterentry>
  </parameter>
</parameters>

VS解决方案构建任务参数

/p:PackageAsSingleFile=true 
/p:SkipInvalidConfigurations=true
/p:PackageLocation=$(build.artifactstagingdirectory) 
/p:AllowUntrustedCertificate=true 
/p:IncludeSetAclProviderOnDestination=False 
/p:DeployOnBuild=true 
/p:AllowUntrustedCertificate=true 
/p:WebPublishMethod=Package 
/p:SkipInvalidConfigurations=true 
/p:DisableAllVSGeneratedMSDeployParameter=true
打包后

SetParameters.xml

<?xml version="1.0" encoding="utf-8"?>
<parameters>
  <setParameter name="IIS Web Application Name" value="__IISWebApplicationName__" />
</parameters>

发布任务环境变量配置

Name = IISWebApplicationName

值=网站名称

MSDeploy配置

目标提供商:自动

目标计算机:https:// {server}:8172 / msdeploy.axd?site = $(IISWebApplicationName)

MSDeploy Commmand

msdeploy.exe -verb:sync -source:package='C:\agent\_work\r4\a\{buildName}\drop\{packageName}' -dest:auto,computerName='https://{server}:8172/msdeploy.axd?site=Site Name',userName='xxx',password='xxx',authType='basic',includeAcls='False' -allowUntrusted -setParamFile=C:\path\to\param\file -verbose

1 个答案:

答案 0 :(得分:0)

您可以使用IIS Web App Deploy任务将Web应用程序部署到IIS,然后您只需要直接指定带有变量的网站名称。

  1. Configure Deployment group
  2. 修改发布定义
  3. 在部署组上添加运行
  4. 添加IIS Web App部署任务并指定网站名称
  5. enter image description here

    另一方面,IIS Web App Deployment Using WinRM extension中的WinRM:IIS Web App部署任务工作正常(不需要配置部署组。)