10

在设置 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...,它将很好地部署。

4

2 回答 2

7

经过多次谷歌搜索,最后比较了一个可以部署的项目和一个不会部署的项目,在我用文本编辑器打开 .csproj 文件并比较它们后,我终于弄明白了。在有效的项目中,我找到了这个部分:

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

它有这一行:

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

我将同一行添加到非工作项目中,更改了站点名称,并且它起作用了。希望这对其他人有帮助。

于 2013-08-09T17:30:20.400 回答
6

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

于 2013-08-15T14:22:53.200 回答