2010-07-14 105 views
7

我試圖自動部署網站。我開始與這個articleMSBuild 4和MSDeploy命令行

,一切都從2010年VS的偉大工程,但是,我在使用命令行 問題,我用這個

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完成的

+0

我仍然不知道msbuild需要什麼平臺,但是當我爲VS 2010中的所有平臺設置這些更改時,工作正常。 – gapo 2010-07-14 14:43:17

+0

即使沒有設置IS Web應用程序名稱。這個問題應該關閉 – gapo 2010-07-14 14:46:20

回答

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 

如果你不想安裝現場手動,你可以運行一個電源外殼看起來像這樣:

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"