使用MS Build的IIS WebDeploy失败,错误MSB4044 -ConcatFullServiceUrlWithSiteName任务

时间:2013-08-09 17:30:20

标签: visual-studio-2012 msbuild msdeploy

在设置Jenkins部署作业时,尝试通过命令行部署Visual Studio 2012 Web项目时,我一直遇到此错误。

错误MSB4044:“ConcatFullServiceUrlWithSiteName”任务未获得所需参数“SiteAppName”的值

供参考,以下是我使用的参数:

/p:Configuration=Release /t:Rebuild  /p:VisualStudioVersion=11.0 /p:PublishProfile="DeployToDevServer" 
/p:DeployOnBuild=True /p:DeployTarget=MSDeployPublish 
/P:AllowUntrustedCertificate=True /p:MSDeployPublishMethod=WMSvc
/p:MsDeployServiceUrl=https://devmachine.server.com:8172/MsDeploy.axd 
/p:username=domainhere\adminuserhere /p:password=adminpasshere

注意:如果我从项目内部选择Publish ...,它会部署得很好。

2 个答案:

答案 0 :(得分:6)

经过大量的谷歌搜索,最后比较一个将部署的项目与不会的项目,我终于在用文本编辑器打开.csproj文件并将它们进行比较后弄明白了。 在有效的项目中,我发现了这一部分:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">

它有这条线:

<DeployIisAppPath>Default Web Site/sitenamehere</DeployIisAppPath>

我在非工作项目中添加了相同的行,更改了网站名称,并且工作正常。 希望这有助于其他人。

答案 1 :(得分:5)

您可以将此DeployIisAppPath作为参数传递给Jenkins,如下所示: p:DeployIisAppPath=Default Web Site/sitenamehere 这将允许您在不同的计算机上拥有不同的网站名称。在您的示例中(使用CSPROJ修改),您将不得不在所有目标计算机上拥有一个IIS站点名称