我正在尝试自动化站点的部署。我从这个开始 article
从 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 应用程序名称是错误的。
不应该从 .csproj 文件中获取此信息吗?
所有这些设置都是为调试配置和平台任何 cpu 完成的
最佳答案
您通常首先在 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
如果您不想手动设置站点,则可以运行如下所示的电源 shell :
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"
关于MSBuild 4 和 MSDeploy 命令行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3246938/