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

Adr*_*arr 10 msbuild msdeploy visual-studio-2012

在设置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
Run Code Online (Sandbox Code Playgroud)

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

Adr*_*arr 7

经过大量的谷歌搜索,最后比较一个将部署的项目与不会的项目,我终于在用文本编辑器打开.csproj文件后对其进行了比较.在有效的项目中,我找到了这个部分:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
Run Code Online (Sandbox Code Playgroud)

它有这条线:

<DeployIisAppPath>Default Web Site/sitenamehere</DeployIisAppPath>
Run Code Online (Sandbox Code Playgroud)

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


Ант*_*ьян 6

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