在设置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 ...,它会部署得很好。
答案 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站点名称