MSBuild 4 and MSDeploy command line

7

我正在尝试自动化网站部署。我从这篇文章开始。

从VS 2010开始一切都很顺利。然而,我在使用命令行时遇到了问题。

我使用以下命令:

c:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe "d:\Projects\test.csproj" /T:Package /P:PackageLocation="d:\Package\packageTest.zip"

创建软件包

d:\Projects\packageTest.deploy.cmd "-setParam:name='IIS Web Application Name',value=MSBuild/Test2" /y

至少要正确部署。但是,它不使用任何IIS选项(应用程序池为MSBuild而不是ASP.NET v2.0),并且如我之前所说,IIS Web应用程序名称是错误的。这些设置都是针对调试配置和平台any cpu完成的。

这些信息难道不应该从.csproj文件中获取吗?


我仍然不知道msbuild使用哪个平台,但当我在VS 2010中为所有平台设置这些更改时,它可以正常工作。 - gapo
即使没有设置IS Web应用程序名称。这个问题应该被关闭。 - gapo
1个回答

6

通常,您首先在IIS上设置应用程序,包括正确的路径、应用程序池等。设置完成后,您可以使用MSBuild将其部署到该应用程序名称中,如下所示:

msbuild <your_web_project_name>.csproj /p:Configuration=Release /p:OutputPath=bin /p:DeployOnBuild=True /p:DeployTarget=MSDeployPublish /p:MsDeployServiceUrl=https://<url_to_your_server>:8080/msdeploy.axd /p:username=<username> /p:password=<password> /p:AllowUntrustedCertificate=True /p:DeployIisAppPath=<your_site_name> /p:MSDeployPublishMethod=WMSVC /p:VisualStudioVersion=11.0

如果您不想手动设置网站,您可以运行类似于以下内容的PowerShell:

Import-Module WebAdministration
New-Item iis:\Sites\<your_site_name> -bindings @{protocol="http";bindingInformation=":80:<your_site_name>} -physicalPath c:\inetpub\wwwroot\<your_site_name>
Set-ItemProperty 'IIS:\Sites\<your_site_name>' ApplicationPool "ASP.NET v4.0"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接